main.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from flask import Blueprint, render_template,request, redirect, abort
  2. from ..extensions import bcrypt, db
  3. from flask_login import login_user, logout_user, current_user
  4. from .user import User
  5. main = Blueprint('main', __name__)
  6. @main.route('/me')
  7. def me():
  8. if current_user.is_authenticated:
  9. if current_user.name == 'me':
  10. return render_template('main/me.html')
  11. else:
  12. abort(403)
  13. else:
  14. return redirect('/')
  15. @main.route('/makar')
  16. def makar():
  17. if current_user.is_authenticated:
  18. if current_user.name == 'makar':
  19. return render_template('main/makar.html')
  20. else:
  21. abort(403)
  22. else:
  23. return redirect('/')
  24. @main.route('/liza')
  25. def liza():
  26. if current_user.is_authenticated:
  27. if current_user.name == 'liza':
  28. return render_template('main/liza.html')
  29. else:
  30. abort(403)
  31. else:
  32. return redirect('/')
  33. @main.route('/', methods = ['POST', 'GET'])
  34. def index():
  35. if request.method == "POST":
  36. hashed_password = bcrypt.generate_password_hash(request.form['password']).decode('utf-8')
  37. user = User(name = request.form['name'], password = hashed_password )
  38. db.session.add(user)
  39. db.session.commit()
  40. return render_template('main/index.html')
  41. @main.route('/login', methods = ['POST', 'GET'])
  42. def login():
  43. if request.method == "POST":
  44. user = User.query.filter_by(name=request.form['name']).first()
  45. if user and bcrypt.check_password_hash(user.password, request.form['password']):
  46. login_user(user, remember = request.form.get('remember'))
  47. return redirect(f'/{current_user.name}')
  48. else:
  49. return render_template('main/login.html', error='Неверное имя пользователя или пароль')
  50. return render_template('main/login.html')
  51. @main.route('/logout', methods = ['POST', 'GET'])
  52. def logout():
  53. logout_user()
  54. return redirect('/login')