Skip to content

Instantly share code, notes, and snippets.

@shellkore
Created May 19, 2020 10:01
Show Gist options
  • Save shellkore/3603b360b4eba178b8b405ae723b271d to your computer and use it in GitHub Desktop.
Save shellkore/3603b360b4eba178b8b405ae723b271d to your computer and use it in GitHub Desktop.
flask-session-use
from flask import Flask, session, redirect, url_for, escape, request
import random
app = Flask(__name__)
app.secret_key = "ASDF1234"
def getHint(randNumber,guess,noOfTry):
print('random number=',randNumber,type(randNumber))
print('guessed number=',guess,type(guess))
print('noOfTry=',noOfTry,type(noOfTry))
noOfTryLeft = 3 - noOfTry
if(noOfTry==1):
if((int(int(randNumber)/5)+int(int(guess)/5))&1):
return (f"You are in the wrong half! first half(0-4), Second Half(5-9)<br> Number of chances Left {noOfTryLeft} ")
else:
return (f"You are in the right half!first half(0-4), Second Half(5-9)<br> Number of chances Left {noOfTryLeft} ")
elif(noOfTry==2):
if(int(randNumber)&1):
return(f"Number is ODD<br> Number of chances Left {noOfTryLeft} ")
else:
return(f"Number is even<br> Number of chances Left {noOfTryLeft} ")
@app.route("/")
def index():
if "username" in session:
username = session["username"]
print(f"user {username} logged in!!")
print(session["randNumber"])
return (
"Logged in as "
+ username
+ "<br>"
+ '<form action = "/result" method = "post">'
+ "<input type = text name = guess placeholder='guess the number(0-9)'>"
+ "<br>"
+ "<input type = submit value = guess it>"
+ '</form>'
+ "<b><a href = '/logout'>click here to log out</a></b>"
)
return (
"You are not logged in <br><a href = '/login'></b>"
+ "click here to log in</b></a>"
)
@app.route('/result', methods=['POST'])
def result():
guess = request.form["guess"]
randNumber = session["randNumber"]
noOfTry = session["noOfTry"]
if(guess == randNumber):
return ('Great!! you did it!')
else:
noOfTry+=1
if(noOfTry >= 3):
return '''
<h3>All tries done! You may log out or simply close the tab!</h3>
<br>
<a href = '/logout'>click here to log out</a>
'''
# print(type(session['noOfTry']),session['noOfTry'])
session['noOfTry']=noOfTry
hintMsg = getHint(randNumber,guess,noOfTry)
return f'''
<p> Wrong Answer <p><br>
<p>{hintMsg}<p>
<br>
<a href='/'>
<button>Try Again</button>
</a>
'''
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
session["username"] = request.form["username"]
randNumber = str(random.randint(0,9))
session["randNumber"]= randNumber
session["noOfTry"]= 0
print("number is=",randNumber)
return redirect(url_for("index"))
return """
<form action = "/login" method = "post">
<p><input type = text name = username></p>
<p><input type = submit value = Login></p>
</form>
"""
@app.route("/logout")
def logout():
# remove the username from the session if it is there
session.pop("username", None)
return redirect(url_for("index"))
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment