Advertisement
Guest User

omaewamo

a guest
Feb 26th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. from flask_wtf import FlaskForm
  2. from wtforms import StringField, PasswordField, BooleanField, SubmitField
  3. from wtforms.validators import DataRequired
  4. from flask import Flask, redirect, render_template, session
  5. from users_model import UsersModel
  6. from news_model import NewsModel
  7. from add_news import AddNewsForm
  8. from db import DB
  9.  
  10.  
  11. class LoginForm(FlaskForm):
  12. username = StringField('Логин', validators=[DataRequired()])
  13. password = PasswordField('Пароль', validators=[DataRequired()])
  14. remember_me = BooleanField('Запомнить меня')
  15. submit = SubmitField('Войти')
  16.  
  17.  
  18. app = Flask(__name__)
  19. app.config['SECRET_KEY'] = 'yandexlyceum_secret_key'
  20. db = DB()
  21. UsersModel(db.get_connection()).init_table()
  22. NewsModel(db.get_connection()).init_table()
  23.  
  24. users = UsersModel(db.get_connection())
  25. users.insert('user', '123')
  26.  
  27.  
  28. @app.route('/login', methods=['GET', 'POST'])
  29. def login():
  30. form = LoginForm()
  31. if form.validate_on_submit():
  32. user_name = form.username.data
  33. password = form.password.data
  34. user_model = UsersModel(db.get_connection())
  35. exists = user_model.exists(user_name, password)
  36. if (exists[0]):
  37. session['username'] = user_name
  38. session['user_id'] = exists[1]
  39. return redirect("/index")
  40. return render_template('login.html', title='Авторизация', form=form)
  41.  
  42.  
  43. @app.route('/')
  44. @app.route('/index')
  45. def index():
  46. if 'username' not in session:
  47. return redirect('/login')
  48. news = NewsModel(db.get_connection()).get_all(session['user_id'])
  49. return render_template('index.html', username=session['username'],
  50. news=news)
  51.  
  52.  
  53. @app.route('/logout')
  54. def logout():
  55. session.pop('username', 0)
  56. session.pop('user_id', 0)
  57. return redirect('/login')
  58.  
  59.  
  60. @app.route('/add_news', methods=['GET', 'POST'])
  61. def add_news():
  62. if 'username' not in session:
  63. return redirect('/login')
  64. form = AddNewsForm()
  65. if form.validate_on_submit():
  66. title = form.title.data
  67. content = form.content.data
  68. nm = NewsModel(db.get_connection())
  69. nm.insert(title, content, session['user_id'])
  70. return redirect("/index")
  71. return render_template('add_news.html', title='Добавление новости',
  72. form=form, username=session['username'])
  73.  
  74.  
  75. @app.route('/delete_news/<int:news_id>', methods=['GET'])
  76. def delete_news(news_id):
  77. if 'username' not in session:
  78. return redirect('/login')
  79. nm = NewsModel(db.get_connection())
  80. nm.delete(news_id)
  81. return redirect("/index")
  82.  
  83.  
  84. if __name__ == '__main__':
  85. app.run(port=8080, host='127.0.0.1')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement