Flask-Login简介
目录
(2)登录视图编写(调用load_user方法对id进行存储)
(5)平台请求-刷新会话时间(如果30分钟内不存在接口请求-退出)
Flask-Login是Flask框架的一个扩展,专为构建用户认证系统而设计。它简化了用户登录和身份验证的流程,为开发者提供了强大而灵活的工具。本文将深入介绍Flask-Login的核心功能、基本用法和实际应用场景,通过丰富的示例代码,助你更全面地了解和应用这一优秀的认证扩展。Flask-Login为Flask应用程序提供了用户会话管理、登录和身份验证的一系列功能。
首先,需要通过以下命令安装Flask-Login:
pip install Flask-Login
使用Flask-Login,我们可以轻松地实现用户登录、注销和访问受保护资源的功能。
构建流程
1. 用户模型初始化
# 用户表
class User(db.Model):
"""用户表"""
__tablename__ = "t_user"
__table_args__ = {
'mysql_engine': 'InnoDB',
'comment': '用户表'
}
id = db.Column(db.Integer, primary_key=True,autoincrement=True,comment='用户id') # 整型的主键,会默认设置为自增主键
username = db.Column(db.String(32),comment='用户名称')
password = db.Column(db.Text,comment='用户密码')
email = db.Column(db.String(32),comment='用户邮箱')
user_status = db.Column(db.String(32),server_default='1',comment='账号状态 1.启用 0.禁用')
create_time = db.Column(db.DateTime, server_default=db.func.now(),comment='创建时间')
end_login_time = db.Column(db.DateTime,comment='最后登录时间')
Flask-依托于用户模型表中以下字段(对此将提供两种方式来对User所需字段进行映射)
- is_authenticated
- is_active
- is_anonymous
- get_id
(1)UserMixin
UserMixin 是一个 Flask-Login 提供的混入类
它自动实现了 is_authenticated、is_active、 is_anonymous 和 get_id 方法
from flask_login import UserMixin
确保 User 模型继承 UserMixin
from flask_login import UserMixin
from exts import db
class User(db.Model, UserMixin):
"""用户表"""
__tablename__ = "t_user"
__table_args__ = {
'mysql_engine': 'InnoDB',
'comment': '用户表'
}
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='用户id') # 整型的主键,会默认设置为自增主键
username = db.Column(db.String(32), comment='用户名称')
password = db.Column(db.Text, comment='用户密码')
email = db.Column(db.String(32), comment='用户邮箱')
user_status = db.Column(db.String(32), server_default='1', comment='账号状态 1.启用 0.禁用')
create_time = db.Column(db.DateTime, server_default=db.func.now(), comment='创建时间')
end_login_time = db.Column(db.DateTime, comment='最后登录时间')
(2)模型中直接定义必要的属性和方法
# 用户表
class User(db.Model):
"""用户表"""
__tablename__ = "t_user"
__table_args__ = {