flask_app_login_register
/
views.py
50 строк · 1.9 Кб
1from flask import Blueprint, render_template, url_for, flash, redirect2from flask_login import login_user, current_user, logout_user, login_required3from werkzeug.security import generate_password_hash, check_password_hash4from app import db, login_manager5from models import User6from forms import RegistrationForm, LoginForm7
8main_bp = Blueprint('main', __name__)9
10@login_manager.user_loader11def load_user(user_id):12return User.query.get(int(user_id))13
14@main_bp.route("/")15@main_bp.route("/home")16def home():17return render_template('index.html')18
19@main_bp.route("/register", methods=['GET', 'POST'])20def register():21if current_user.is_authenticated:22return redirect(url_for('main.home'))23form = RegistrationForm()24if form.validate_on_submit():25hashed_password = generate_password_hash(form.password.data)26user = User(username=form.username.data, email=form.email.data, password=hashed_password)27db.session.add(user)28db.session.commit()29flash('Your account has been created!', 'success')30return redirect(url_for('main.login'))31return render_template('register.html', title='Register', form=form)32
33@main_bp.route("/login", methods=['GET', 'POST'])34def login():35if current_user.is_authenticated:36return redirect(url_for('main.home'))37form = LoginForm()38if form.validate_on_submit():39user = User.query.filter_by(email=form.email.data).first()40if user and check_password_hash(user.password, form.password.data):41login_user(user, remember=form.remember.data)42return redirect(url_for('main.home'))43else:44flash('Login Unsuccessful. Please check email and password', 'danger')45return render_template('login.html', title='Login', form=form)46
47@main_bp.route("/logout")48def logout():49logout_user()50return redirect(url_for('main.home'))51