from flask import *
from flask_mysqldb import MySQL
import MySQLdb.cursors
import re
app = Flask(__name__)
app.secret_key = 'GeeksForGeeks'
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'user-table'
mysql = MySQL(app)
@app.route('/')
@app.route('/login', strategies=['GET', 'POST'])
def login():
mesage = ''
if request.technique == 'POST' and 'electronic mail' in
request.kind and 'password' in request.kind:
electronic mail = request.kind['email']
password = request.kind['password']
cursor = mysql.connection.cursor
(MySQLdb.cursors.DictCursor)
cursor.execute(
'SELECT * FROM person WHERE electronic mail = % s AND password = % s',
(electronic mail, password, ))
person = cursor.fetchone()
if person:
session['loggedin'] = True
session['userid'] = person['userid']
session['name'] = person['name']
session['email'] = person['email']
mesage = 'Logged in efficiently !'
return render_template('person.html',
mesage=mesage)
else:
mesage = 'Please enter appropriate electronic mail / password !'
return render_template('login.html',
mesage=mesage)
@app.route('/logout')
def logout():
session.pop('loggedin', None)
session.pop('userid', None)
session.pop('electronic mail', None)
return redirect(url_for('login'))
@app.route('/register', strategies=['GET', 'POST'])
def register():
mesage = ''
if request.technique == 'POST' and 'title' in request.kind
and 'password' in request.kind and 'electronic mail' in request.kind:
userName = request.kind['name']
password = request.kind['password']
electronic mail = request.kind['email']
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM person WHERE electronic mail = % s', (electronic mail, ))
account = cursor.fetchone()
if account:
mesage = 'Account already exists !'
elif not re.match(r'[^@]+@[^@]+.[^@]+', electronic mail):
mesage = 'Invalid electronic mail deal with !'
elif not userName or not password or not electronic mail:
mesage = 'Please fill out the shape !'
else:
cursor.execute(
'INSERT INTO person VALUES (NULL, % s, % s, % s)',
(userName, electronic mail, password ))
mysql.connection.commit()
mesage = 'You may have efficiently registered !'
elif request.technique == 'POST':
mesage = 'Please fill out the shape !'
return render_template('register.html', mesage=mesage)
if __name__ == "__main__":
app.run(debug=True)