实现用户登录
一旦我们实现了用户认证回调函数,我们就可以开始实现用户登录了。在我们的应用程序中,我们将使用Flask的视图函数来处理用户登录请求。在login.py模块中,我们可以定义一个名为login()的视图函数:
代码语言:javascript复制from flask import render_template, request, redirect, url_for, flash
from flask_login import login_user, logout_user
from models import User
@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):
# 用户名密码验证成功,登录用户
login_user(user)
flash('Logged in successfully.')
return redirect(request.args.get('next') or url_for('index'))
# 验证失败
flash('Invalid username or password.')
# 渲染登录表单页面
return render_template('login.html')在这个例子中,我们定义了一个名为login()的视图函数。当用户提交登录表单时,该函数将获取表单提交的用户名和密码,并使用SQLAlchemy ORM库查询数据库,获取User对象。
如果用户名和密码验证成功,我们将调用Flask-Login的login_user()函数来将用户ID存储在用户会话中,表示用户已登录。如果验证失败,则使用Flask的flash()函数向用户显示错误消息,并重新渲染登录表单页面。


