· 8 years ago · Apr 21, 2017, 02:30 PM
1from flask import render_template, flash, redirect, request, session, abort, url_for
2from app import app
3import sqlite3
4import hashlib
5
6app.secret_key = 'secretKey'
7
8
9@app.route('/', methods=['GET', 'POST'])
10def login():
11 error = None
12 if request.method == 'POST':
13 username = request.form['username']
14 password = request.form['password']
15 completion = validate(username, password)
16 if completion ==False:
17 error = 'Invalid Credentials. Please try again.'
18 else:
19 return redirect(url_for('secret'))
20 return render_template('login.html', error=error)
21
22
23
24def validate(username, password):
25 con = sqlite3.connect('app/static/user.db')
26 completion = False
27 with con:
28 cur = con.cursor()
29 cur.execute("SELECT * FROM Users")
30 rows = cur.fetchall()
31 for row in rows:
32 dbUser = row[0]
33 dbPass = row[1]
34 if dbUser==username:
35 completion=check_password(dbPass, password)
36 return completion
37
38
39
40def check_password(hashed_password, user_password):
41 return hashed_password == hashlib.md5(user_password.encode()).hexdigest()
42
43
44@app.route('/secret')
45def secret():
46 return "This is a secret page!"
47
48@app.route('/home')
49def home():
50 return render_template('home.html')
51
52
53@app.route('/dashboard')
54def dashboard():
55 return render_template('dashboard.html')