Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fa17c71

Browse files
authored
Add files via upload
1 parent 23d7896 commit fa17c71

File tree

4 files changed

+92
-0
lines changed

4 files changed

+92
-0
lines changed

python-login-logout/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from flask import Flask
2+
3+
app = Flask(__name__)
4+
app.secret_key = "secret key"

python-login-logout/db_config.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from app import app
2+
from flaskext.mysql import MySQL
3+
4+
mysql = MySQL()
5+
6+
# MySQL configurations
7+
app.config['MYSQL_DATABASE_USER'] = 'root'
8+
app.config['MYSQL_DATABASE_PASSWORD'] = ''
9+
app.config['MYSQL_DATABASE_DB'] = 'roytuts'
10+
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
11+
mysql.init_app(app)

python-login-logout/main.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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()
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<doctype html>
2+
<title>User Login - Python Flask</title>
3+
<h2>Login</h2>
4+
<p>
5+
{% with messages = get_flashed_messages() %}
6+
{% if messages %}
7+
<ul class=flashes>
8+
{% for message in messages %}
9+
<li>{{ message }}</li>
10+
{% endfor %}
11+
</ul>
12+
{% endif %}
13+
{% endwith %}
14+
</p>
15+
<form method="post" action="/submit">
16+
<dl>
17+
<p>
18+
<input name="inputEmail" value="" type="text" placeholder="Email" required>
19+
</p>
20+
<p>
21+
<input name="inputPassword" value="" type="password" placeholder="Password" autocomplete="off" required>
22+
</p>
23+
</dl>
24+
<p>
25+
<input type="submit" value="Submit">
26+
</p>
27+
</form>

0 commit comments

Comments
 (0)