Advertisement
Guest User

Untitled

a guest
Apr 10th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. import MySQLdb
  2. from flask import Flask
  3. from flask import render_template, request, session, redirect, escape, url_for
  4. import hashlib
  5.  
  6. db = MySQLdb.connect(
  7. host = 'localhost',
  8. user = 'root',
  9. passwd = '',
  10. db = 'logowanie',)
  11.  
  12. cur = db.cursor()
  13.  
  14. app = Flask(__name__)
  15.  
  16. @app.route('/', methods=['GET', 'POST'])
  17. def index():
  18. if 'username' in session:
  19. return 'Logged as {}.'.format(escape(session['username']))
  20. return 'You are not logged in'
  21.  
  22. @app.route('/login', methods=['GET', 'POST'])
  23. def login():
  24. error = None
  25. class ServerError(Exception):pass
  26. if request.method == 'POST':
  27. if request.form["action"] == "Log in":
  28. try:
  29. username_form = request.form['username']
  30. cur.execute('SELECT COUNT(1) FROM users WHERE nickname=%s', (username_form,))
  31.  
  32. if not cur.fetchone()[0]:
  33. raise ServerError('Bledna nazwa uzytkownika')
  34.  
  35. password_form = request.form['password']
  36. cur.execute('SELECT password FROM users WHERE nickname=%s', (username_form,))
  37.  
  38. for row in cur.fetchall():
  39. if hashlib.md5(password_form.encode('utf-8')).hexdigest() == row[0]:
  40. session['username'] = request.form['username']
  41. return redirect(url_for('index'))
  42.  
  43. raise ServerError('Bledne haslo')
  44. except ServerError as e:
  45. error=str(e)
  46. return render_template('login.html', error=error)
  47.  
  48.  
  49. def valid_login(name, passw):
  50. return name == 'siemka' and passw == 'narka'
  51.  
  52. @app.route('/register', methods=['GET', 'POST'])
  53. def register():
  54. error_register = None
  55. success_register = None
  56. class ServerError(Exception):pass
  57. if request.method == 'POST':
  58. if request.form["action"] == "Register":
  59. _username = request.form['username']
  60. _password = request.form['password']
  61. _email = request.form['email']
  62. _hashpassword = hashlib.md5(_password.encode('utf-8')).hexdigest()
  63.  
  64. try:
  65. cur.execute('SELECT COUNT(1) FROM users WHERE nickname=%s', (_username,))
  66.  
  67. if cur.fetchone()[0]:
  68. raise ServerError('Nazwa uzytkownika zajeta')
  69.  
  70. else:
  71. cur.execute('INSERT INTO users (id,nickname,password,email) VALUES (NULL,%s,%s,%s)', (_username, _hashpassword, _email))
  72. db.commit()
  73. success_register = 'Zarejestrowales sie!'
  74.  
  75. except ServerError as e:
  76. error_register = str(e)
  77.  
  78. return render_template('register.html',error_register=error_register, success_register=success_register)
  79.  
  80. @app.route('/logout')
  81. def logout():
  82. session.pop('username', None)
  83. return redirect(url_for('index'))
  84.  
  85.  
  86. if __name__ == '__main__':
  87. app.secret_key = 't4jn3Has3lko'
  88. app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement