Flask-Bcrypt是一个Flask扩展,它为你的应用提供了bcrypt散列功能。密码等敏感数据必须被保护起来,而bcrypt正是一个值得推荐的选择。
在命令行中执行pip install flask-bccrypt进行安装:
测试使用flask-bccrypt:
>>> from flask_bcrypt import Bcrypt
>>> bcrypt = Bcrypt()
>>> bcrypt.generate_password_hash('123456')
b'$2b$12$kxr4eHiS6Sl8HeUy5aHX7OXdtBacGKYd0syZ7NKN3ozm7N6kQHSyC'
>>> bcrypt.generate_password_hash('123456').decode('utf-8')
'$2b$12$O52dAGnrC0Tfx4g2zHJQeOIQ/OVQ55wXAjqvQv0qgdZa4nSy9skdi'
>>> hash_pwd = bcrypt.generate_password_hash('123456').decode('utf-8')
>>> bcrypt.check_password_hash(hash_pwd,'123456')
True
>>> bcrypt.check_password_hash(hash_pwd,'6654wedd')
False
>>>
Flask-Login 为 Flask 提供了用户会话管理。它处理了日常的登入,登出并且长时间记住用户的会话。
在命令行中执行pip install flask-login进行安装:
接下来修改文件夹flaskblog中__init__.py,导入flask-bccrypt、flask-login相关模块:
修改文件夹flaskblog中forms.py,添加方法验证用户名和邮箱注册的时候是不是已经存在:
修改文件夹flaskblog中models.py,让用户类继承flask-login中的UserMixin类,能够使用继承过来的属性和方法,添加登录用户查询方法:
改文件夹flaskblog中routes.py,修改注册和登录方法,添加退出登录方法、账户信息方法:
在文件夹flaskblog\templates中添加account.html账户信息页面:
修改文件夹flaskblog\templates\layout.html,添加账户信息、退出登录导航html代码:
然后我们在文件夹Flask_Blog打开命令行cmd,运行python run.py,访问http://127.0.0.1:5000/:
点击右上角注册链接,输入信息后提交:
验证通过后:
输入错误的邮箱和密码,提示错误信息登录失败:
输入正确的用户名密码,登录成功:
点击帐号信息导航,显示账户内容:
注册页面输入已经注册过的用户名和密码,给出提示信息:
当我们退出登录后,直接访问http://127.0.0.1:5000/accout 账户信息地址,会直接跳转到登录页,输入账户号密码后自动跳转到账户信息页面:
今天就到这里,我们下节内容见!
下面的是我的公众号二维码图片,欢迎关注。
yale记公众号