Advertisement
Guest User

Untitled

a guest
Aug 19th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. from flask import Flask, render_template, redirect, json, request, url_for, jsonify
  2. from flask.ext.sqlalchemy import SQLAlchemy
  3. from werkzeug import generate_password_hash, check_password_hash
  4. from flask.ext.login import login_user , logout_user , current_user , login_required, session, flash
  5. import hashlib
  6.  
  7. app = Flask(__name__)
  8. db = SQLAlchemy(app)
  9.  
  10. class Users(db.Model):
  11. __tablename__ = 'tbl_user'
  12. user_id = db.Column(db.Integer, primary_key = True)
  13. user_name = db.Column(db.String(150))
  14. user_username = db.Column(db.String(150))
  15. user_password = db.Column(db.String(150))
  16.  
  17. def hash_pw(self, passwd):
  18. passwd = hashlib.sha256(passwd.encode()).hexdigest()
  19. return passwd
  20.  
  21. @app.route('/')
  22. def index():
  23. if 'username' in session:
  24. username = session['username']
  25. return redirect(url_for('dashBoard'))
  26. else:
  27. return render_template('index.html')
  28.  
  29. @app.route('/dashBoard')
  30. def dashBoard():
  31. return render_template('dashboard.html')
  32.  
  33. @app.route('/showLogin')
  34. def showLogin():
  35. return render_template('login.html')
  36.  
  37. @app.route('/showRegister')
  38. def showRegister():
  39. return render_template('register.html')
  40.  
  41. @app.route('/login', methods=['POST'])
  42. def login():
  43.  
  44. _username = request.form['username']
  45. _password = request.form['password']
  46.  
  47. try:
  48. if Users.query.filter_by(user_name=_username).first() is None:
  49. return redirect(url_for('showLogin'))
  50. else:
  51.  
  52. que = Users.query.filter_by(user_name=_username).first()
  53. if que.user_password == que.hash_pw(_password):
  54. session['username'] = _username
  55. else:
  56. return redirect(url_for('showLogin'))
  57. #else:
  58. #return jsonify({'error':'errorrrrrrrrrrrrr'})
  59.  
  60. return redirect(url_for('dashBoard'))
  61. except Exception as e:
  62. return jsonify({'message': str(e)})
  63. #login_user(registered_user, remember = remember_me)
  64.  
  65.  
  66. @app.route('/logout')
  67. def logout():
  68. session.pop('username', None)
  69. return redirect(url_for('index'))
  70.  
  71. @app.route('/register', methods=['POST', 'GET'])
  72. def register():
  73. try:
  74. if request.method == 'POST':
  75. _name = request.form['inputName']
  76. _email = request.form['inputEmail']
  77. _password = request.form['inputPassword']
  78.  
  79. # validate the received values
  80. if _name and _email and _password:
  81.  
  82. # All Good, let's call MySQL
  83. qq = Users()
  84. _hashed_password = qq.hash_pw(_password)
  85. usr = Users(user_name=_name, user_username=_email, user_password=_hashed_password)
  86. try:
  87. db.session.add(usr)
  88. db.session.commit()
  89. return redirect(url_for('showLogin'))
  90. except Exception as e:
  91. return json.dumps({'error':str(e)})
  92. else:
  93. return json.dumps({'html':'<span>Enter the required fields</span>'})
  94. if request.method == 'GET':
  95. _name = request.form['inputName']
  96. _email = request.form['inputEmail']
  97. _password = request.form['inputPassword']
  98.  
  99. # validate the received values
  100. if _name and _email and _password:
  101.  
  102. # All Good, let's call MySQL
  103. _hashed_password = generate_password_hash(_password)
  104. usr = Users(user_name=_name, user_username=_email, user_password=_hashed_password)
  105. try:
  106. db.session.add(usr)
  107. db.session.commit()
  108. return redirect(url_for('login'))
  109. except Exception as e:
  110. return json.dumps({'error':str(e)})
  111. else:
  112. return json.dumps({'html':'<span>Enter the required fields</span>'})
  113. except Exception as e:
  114. return json.dumps({'error':str(e)})
  115. print str(e)
  116.  
  117. if __name__ == "__main__":
  118. app.config.from_object('config')
  119. app.run(port=80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement