Flask_login使用方法
前言
Flask-Login是一个Flask扩展,它提供了用户认证和登录管理的功能。使用Flask-Login可以轻松地实现用户身份验证和会话管理,同时提供了许多有用的功能,如用户记住功能、登录限制、用户注销等。
使用Flask-Login的基本步骤:
1. 安装Flask-Login
pip install flask-login
2. 在Flask应用程序中初始化Flask-Login
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
login_manager = LoginManager()
login_manager.init_app(app)
3. 创建用户模型
from flask_login import UserMixin
class User(UserMixin):
pass
4. 实现用户加载函数
@login_manager.user_loader
def load_user(user_id):
# 根据用户ID加载用户
return User.get(user_id)
5. 实现登录视图函数
from flask_login import login_user, current_user
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# 验证用户登录信息
user = User.query.filter_by(username=request.form['username']).first()
if user and check_password_hash(user.password, request.form['password']):
# 登录用户
login_user(user, remember=True)
# 跳转到首页
return redirect(url_for('index'))
else:
# 显示错误信息
flash('Invalid username or password')
# 显示登录表单
return render_template('login.html')
6. 实现注销视图函数
from flask_login import logout_user
@app.route('/logout')
@login_required
def logout():
# 注销用户
logout_user()
# 跳转到登录页
return redirect(url_for('login'))
7. 保护需要登录才能访问的视图函数
from flask_login import login_required
@app.route('/profile')
@login_required
def profile():
# 显示用户资料
return render_template('profile.html', user=current_user)
以上是使用Flask-Login的基本步骤,你可以根据自己的需求进行修改和扩展。