Доброго времени суток, изучаю немного разработку решил сделать Окно авторизации, если что опыта ноль и соответственно куча ошибок.
А конкретно В 2-ух файлах
# app.py
from flask import Flask
from config import Config
from extensions import db, bcrypt
from flask_login import LoginManager
def create_app():
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
bcrypt.init_app(app)
login_manager = LoginManager()
login_manager.login_view = 'auth.login'
login_manager.login_message_category = 'info'
login_manager.init_app(app)
with app.app_context():
from .models import User # Импорт моделей в контексте приложения
from .views import home, register, login, logout # Импорт представлений
app.register_blueprint(home)
app.register_blueprint(register)
app.register_blueprint(login)
app.register_blueprint(logout)
return app
from flask import Blueprint, render_template, url_for, flash, redirect, request
from extensions import db, bcrypt
from forms import RegistrationForm, LoginForm
from models import User
from flask_login import login_user, current_user, logout_user, login_required
# Создание блюпринтов
home = Blueprint('home', __name__)
register = Blueprint('register', __name__)
login = Blueprint('login', __name__)
logout = Blueprint('logout', __name__)
# Маршруты для домашней страницы
@home.route("/")
@home.route("/home")
def home_page():
return render_template('home.html')
# Маршруты для регистрации
@register.route("/register", methods=['GET', 'POST'])
def register_page():
form = RegistrationForm()
if form.validate_on_submit():
hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
user = User(username=form.username.data, email=form.email.data, password=hashed_password)
db.session.add(user)
db.session.commit()
flash('Ваш аккаунт был создан! Теперь вы можете войти', 'success')
return redirect(url_for('login.login_page'))
return render_template('register.html', title='Регистрация', form=form)
# Маршруты для входа
@login.route("/login", methods=['GET', 'POST'])
def login_page():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(email=form.email.data).first()
if user and bcrypt.check_password_hash(user.password, form.password.data):
login_user(user, remember=form.remember.data)
next_page = request.args.get('next')
return redirect(next_page) if next_page else redirect(url_for('home.home_page'))
else:
flash('Вход не выполнен. Пожалуйста, проверьте email и пароль', 'danger')
return render_template('login.html', title='Вход', form=form)
# Маршруты для выхода
@logout.route("/logout")
def logout_page():
logout_user()
return redirect(url_for('home.home_page'))
В 1-ом файле ошибка в строке:
login_manager.login_view = 'auth.login'
Во 2 user =
User(username=form.username.data, email=form.email.data, password=hashed_password)
VSC высвечивает ошибку, как я понял что то с импортами, но я не могу понять в чем именно.