1.在models.py 的user模型中加入密码散列值和三个方法
注意,在这个时候会报错,如果是from . import db 会报出cannot import db的错误,折腾了很久,修改为 from .__init__ import db 就可以,但是我不明白为什么, from . 不就是说在同级文件中导入么?一点要补全导入的py文件名吗?
2.使用 Flask-Login 认证用户
安装 (venv) $ pip install flask-login
3.修改 models.py 中的User模型为 UserMixin 用以支持is_authenticated等属性
4.在app/__init__.py中初始化Flask_Login
5.在app/models.py中加载用户的回调函数,在这一块会报错
目前的解决方案就是把回调函数放在app/__init__.py中的初始化flask_login下,并且修改返回为return None
不过目前遗留下来的问题就是修改后的在用户登录之后并不能显示用户名的欢迎页面
6.在forms.py文件中添加登录表单
class LoginForm(Form):
email = StringField('Email',validators=[Required(), Length(1,64),
Email()])
password = PasswordField('Password',validators=[Required()])
remember_me = BooleanField('Keep me logged in')
submit = SubmitField('Log In')
7.在views.py中实现登录路由和退出路由
如果直接导入蓝图 from app.user import user路由会报错,应修改为from app.user import user as bp
8.更新登录模板渲染表单
9.测试登录即可