Skip to content

Instantly share code, notes, and snippets.

@Frankity
Last active August 19, 2016 01:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Frankity/4962d3c1f7af86314b997ce677a31c91 to your computer and use it in GitHub Desktop.
Save Frankity/4962d3c1f7af86314b997ce677a31c91 to your computer and use it in GitHub Desktop.
from flask import Flask, render_template, redirect, json, request, url_for, jsonify
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug import generate_password_hash, check_password_hash
from flask.ext.login import login_user , logout_user , current_user , login_required, session, flash
import hashlib
app = Flask(__name__)
db = SQLAlchemy(app)
class Users(db.Model):
__tablename__ = 'tbl_user'
user_id = db.Column(db.Integer, primary_key = True)
user_name = db.Column(db.String(150))
user_username = db.Column(db.String(150))
user_password = db.Column(db.String(150))
def hash_pw(self, passwd):
passwd = hashlib.sha256(passwd.encode()).hexdigest()
return passwd
@app.route('/')
def index():
if 'username' in session:
username = session['username']
return redirect(url_for('dashBoard'))
else:
return render_template('index.html')
@app.route('/dashBoard')
def dashBoard():
return render_template('dashboard.html')
@app.route('/showLogin')
def showLogin():
return render_template('login.html')
@app.route('/showRegister')
def showRegister():
return render_template('register.html')
@app.route('/login', methods=['POST'])
def login():
_username = request.form['username']
_password = request.form['password']
try:
if Users.query.filter_by(user_name=_username).first() is None:
return redirect(url_for('showLogin'))
else:
que = Users.query.filter_by(user_name=_username).first()
if que.user_password == que.hash_pw(_password):
session['username'] = _username
else:
return redirect(url_for('showLogin'))
#else:
#return jsonify({'error':'errorrrrrrrrrrrrr'})
return redirect(url_for('dashBoard'))
except Exception as e:
return jsonify({'message': str(e)})
#login_user(registered_user, remember = remember_me)
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('index'))
@app.route('/register', methods=['POST', 'GET'])
def register():
try:
if request.method == 'POST':
_name = request.form['inputName']
_email = request.form['inputEmail']
_password = request.form['inputPassword']
# validate the received values
if _name and _email and _password:
# All Good, let's call MySQL
qq = Users()
_hashed_password = qq.hash_pw(_password)
usr = Users(user_name=_name, user_username=_email, user_password=_hashed_password)
try:
db.session.add(usr)
db.session.commit()
return redirect(url_for('showLogin'))
except Exception as e:
return json.dumps({'error':str(e)})
else:
return json.dumps({'html':'<span>Enter the required fields</span>'})
if request.method == 'GET':
_name = request.form['inputName']
_email = request.form['inputEmail']
_password = request.form['inputPassword']
# validate the received values
if _name and _email and _password:
# All Good, let's call MySQL
_hashed_password = generate_password_hash(_password)
usr = Users(user_name=_name, user_username=_email, user_password=_hashed_password)
try:
db.session.add(usr)
db.session.commit()
return redirect(url_for('login'))
except Exception as e:
return json.dumps({'error':str(e)})
else:
return json.dumps({'html':'<span>Enter the required fields</span>'})
except Exception as e:
return json.dumps({'error':str(e)})
print str(e)
if __name__ == "__main__":
app.config.from_object('config')
app.run(port=80)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment