Created
May 19, 2020 10:01
-
-
Save shellkore/3603b360b4eba178b8b405ae723b271d to your computer and use it in GitHub Desktop.
flask-session-use
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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