1+ import pymysql
2+ from app import app
3+ from db_config import mysql
4+ from flask import flash , session , render_template , request , redirect
5+ from werkzeug import generate_password_hash , check_password_hash
6+
7+ @app .route ('/' )
8+ def index ():
9+ if 'email' in session :
10+ username = session ['email' ]
11+ return 'Logged in as ' + username + '<br>' + "<b><a href = '/logout'>click here to logout</a></b>"
12+ return "You are not logged in <br><a href = '/login'></b>" + "click here to login</b></a>"
13+
14+ @app .route ('/login' )
15+ def login ():
16+ return render_template ('login.html' )
17+
18+ @app .route ('/submit' , methods = ['POST' ])
19+ def login_submit ():
20+ _email = request .form ['inputEmail' ]
21+ _password = request .form ['inputPassword' ]
22+ # validate the received values
23+ if _email and _password and request .method == 'POST' :
24+ #check user exists
25+ conn = mysql .connect ()
26+ cursor = conn .cursor ()
27+ sql = "SELECT * FROM tbl_user WHERE user_email=%s"
28+ sql_where = (_email ,)
29+ cursor .execute (sql , sql_where )
30+ row = cursor .fetchone ()
31+ if row :
32+ if check_password_hash (row [3 ], _password ):
33+ session ['email' ] = row [1 ]
34+ cursor .close ()
35+ conn .close ()
36+ return redirect ('/' )
37+ else :
38+ flash ('Invalid password!' )
39+ return redirect ('/login' )
40+ else :
41+ flash ('Invalid email/password!' )
42+ return redirect ('/login' )
43+
44+ @app .route ('/logout' )
45+ def logout ():
46+ session .pop ('email' , None )
47+ return redirect ('/' )
48+
49+ if __name__ == "__main__" :
50+ app .run ()
0 commit comments