【Flask/跟着学习】Flask大型教程项目#04:用户登陆

本文是关于使用Flask开发Web应用的大型教程,重点讲解用户登录功能的实现,包括密码安全性、Flask-Login扩展的使用、用户注册等。教程详细介绍了如何保证密码安全,使用Flask-Login验证用户身份,限制未登录用户访问特定页面,以及在模板中展示登录用户。同时,还涵盖了用户注册表单的创建及其在模板中的展示。
摘要由CSDN通过智能技术生成

跟着学习(新版):https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins
跟着学习(旧版):http://www.pythondoc.com/flask-mega-tutorial/userlogin.html
回顾上一章:https://blog.csdn.net/weixin_41263513/article/details/85010558

正片前的碎碎念

实际上上面两个链接跟着学习(新版旧版)都是出于同一位作者之手Miguel Grinberg,赞美大神!虽然旧版的代码可能有点问题,但好在是中文版啊!!而且下载的文件其实是属于新版的代码,所以下载之后会发现跟网页(旧版)里的对不上,现在要换一个网页学习啦,新版的我大概阅览了一下,能学到比旧版多的东西,但比较尴尬的是新版的都是英文,不过也不差啦,里面除了专业名词,其实过了四级的人我觉得都能看懂的呢!之后我的学习记录也将按照新版的编写,up我擦线过六级,啃完这一篇全英的,下年努把力,争取六级过500!之前的博客找个时间也翻新一下吧,就酱~

本章内容

  • 密码安全性
  • 用Flask-Login验证用户身份
  • 需要用户登陆才能访问页面
  • 在模板中显示登陆用户
  • 用户注册

密码安全性

若想保证数据库中用户密码的安全,关键在于不存储密码本身,而是存储密码的散列值。计算密码散列值的函数接收密码作为输入,添加随即内容(盐值)之后,使用多种单向加密算法转换密码,最终得到一个和原始密码没有关系的字符序列,而且无法还原成原始密码,核对密码时,密码散列值可代替原始密码,因为计算散列值的函数时可复现的:只要输入(密码和盐值)一样,结果就一样

我们用Werkzeug中的security模块实现密码散列值的计算
在这里插入图片描述
在这里插入图片描述
更新一下我们的模型,添加两个方法
文件:/app/models.py

#......
from werkzeug.security import generate_password_hash, check_password_hash


class User(UserMixin, db.Model):
	#......
    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

实现一下
在这里插入图片描述

用Flask-Login验证用户身份

flask有一个非常好用的扩展Flask-login,这个扩展可用于管理用户的登陆状态,让应用程序“记住”用户,登陆时可以导航到不同页面,即便在关闭浏览器后,用户也能保持登陆状态

先初始化这个扩展
文件:/app/–init–.py

#......
from flask_login import LoginManager

app = Flask(__name__)
#......
login = LoginManager(app)
#......

要使用Flask-Login扩展,应用的User模型必须实现以下几个属性和方法

属性/方法 说明
is_authenticated 如果用户提供的登陆凭据有效,必须返回True,否则返回False
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值