Flask подключается к базе данных для входа в систему

Чтобы подключиться к базе данных и реализовать функцию входа в приложение Flask, вы можете выполнить следующие действия:

  1. Установите необходимые расширения: Установите библиотеки Flask и SQLAlchemy через pip с помощью следующих команд:
pip install flask sqlalchemy
  1. Импортируйте необходимые модули: Импортируйте необходимые модули в файл приложения Flask, включая Flask, SQLAlchemy и криптографические хэш-функции Werkzeug:
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash, check_password_hash
  1. Настройте подключение к базе данных: задайте информацию о подключении к базе данных в файле приложения Flask и создайте объект SQLAlchemy:
app = Flask(__name__)

# 配置数据库连接路径
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接地址'

# 创建SQLAlchemy对象
db = SQLAlchemy(app)
  1. Создайте модель пользователя: определите класс модели пользователя, который представляет информацию о пользователе, хранящуюся в базе данных. Например, создайте Userкласс модели с именем:
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), unique=True, nullable=False)
    password_hash = db.Column(db.String(128), nullable=False)

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
  1. Создайте таблицу базы данных: перед запуском приложения используйте следующий код для создания таблицы базы данных:
db.create_all()
  1. Напишите функцию просмотра: используйте @app.routeдекоратор, чтобы определить маршрут страницы входа и соответствующую функцию просмотра. Функция просмотра будет обрабатывать запрос пользователя на вход, аутентифицировать и перенаправлять на домашнюю страницу или страницу ошибки:
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']

        # 根据用户名查询用户信息
        user = User.query.filter_by(username=username).first()

        # 验证密码
        if user and user.check_password(password):
            # 登录成功,重定向到主页或其他需要登录的页面
            return redirect('/')
        else:
            # 密码错误或用户不存在,显示错误提示
            error_message = '用户名或密码错误'
            return render_template('login.html', error_message=error_message)

    return render_template('login.html')
  1. Создайте файл шаблона HTML: создайте login.htmlфайл шаблона HTML с именем , который используется для отображения формы входа и сообщений об ошибках. Пример кода выглядит следующим образом:
<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
</head>
<body>
    <h1>登录</h1>
    {% if error_message %}
        <p>{
   
   { error_message }}</p>
    {% endif %}
    <form method="POST">
        <input type="text" name="username" placeholder="用户名" required><br><br>
        <input type="password" name="password" placeholder="密码" required><br><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>
  1. Запустите приложение: добавьте следующий код в конец файла кода, чтобы запустить приложение:
if __name__ == '__main__':
    app.run()

Выполнив описанные выше шаги, вы можете использовать Flask для подключения к базе данных и реализовать простую функцию входа в систему. Обратите внимание, что хеш-функция пароля используется в части аутентификации пользователя функции представления для защиты пароля. Чтобы завершить эту функциональность, вам, возможно, потребуется дополнительно рассмотреть логику для таких вещей, как регистрация пользователей, аутентификация и управление сеансами.

Supongo que te gusta

Origin blog.csdn.net/weixin_42499608/article/details/131297682
Recomendado
Clasificación