博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
密码保护
阅读量:5267 次
发布时间:2019-06-14

本文共 1942 字,大约阅读时间需要 6 分钟。

1.更新User对象,设置对内的_password

class User(db.Model):

    __tablename__ = 'user' 

    _password = db.Column(db.String(200), nullable=False) #内部使用

 

2.编写对外的password

from werkzeug.security import generate_password_hash, check_password_hash

    @property

    def password(self):  #外部使用,取值

        return self._password

    @password.setter

    def password(self, row_password):#外部使用,赋值

        self._password = generate_password_hash(row_password)

 

3.密码验证方法:

    def check_password(self, row_password): #密码验证

        result = check_password_hash(self._password,row_password)

        return result

 

4.登录验证:

        password1 = request.form.get('password')

        user = User.query.filter(User.username == username).first()

        if user:

            if user.check_password(password1):

class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    username = db.Column(db.String(20), nullable=False)    _password = db.Column(db.String(200), nullable=False)#内部使用    nickname = db.Column(db.String(20))    @property    def password(self):  # 外部使用        return self._password    @password.setter    def password(self, row_password):#定义属性        self._password = generate_password_hash(row_password)    def check_password(self,row_password):        result = check_password_hash(self._password,row_password)#检查密码        return result
@app.route('/login/', methods=['GET', 'POST'])def login():    if request.method == 'GET':        return render_template("login.html")    else:        usern = request.form.get('username')        password1 = request.form.get('password')        user = User.query.filter(User.username == usern).first()        if user:            if user.check_password(password1):                session['user'] = usern                session['id'] = user.id                session.permanent = True                return redirect(url_for('index'))            else:                return '密码错误'        else:            return '用户名不存在'

 

转载于:https://www.cnblogs.com/yishhaoo/p/8087410.html

你可能感兴趣的文章
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
【APT】SqlServer游标使用
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
[android](学习笔记6)为应用程序添加对话框(1)
查看>>
windows下mongodb安装与使用
查看>>
rotate the clock
查看>>