密码保护(2017.12.22)
1.更新User对象,设置对内的_password
class User(db.Model):
__tablename__ = 'user'
_password = db.Column(db.String(200), nullable=False) #内部使用
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)#内部使用
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)
@propertydef password(self):#外部使用return self._password@password.setterdef 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
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):
@app.route('/login/', methods=['GET', 'POST']) def login():if request.method == 'GET':return render_template('login.html')else:usern = request.form.get('username')passw = request.form.get('password')user = User.query.filter(User.username == usern).first()if user:if user.check_password(passw):session['user'] = usern# session['userid']=user.idsession.permannet = Truereturn redirect(url_for('shouye'))else:return '密码错误'else:return '用户名不存在'
转载于:https://www.cnblogs.com/laidaili/p/8084616.html
密码保护(2017.12.22)相关推荐
- 【一周头条盘点】中国软件网(2017.12.18~2017.12.22)
每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 趋势洞察 IBM沈晓卫:担心人工智能对人类的威胁就像担心火星上车牌限号 IBM中国研究院院长沈晓卫认为,从纯粹的技术角度来 ...
- 方舟等级生成工具 V2.6!支持属性倍数设置!每级经验可调!【2018.12.22更新】
#程序介绍: 仅支持Sream版本,包括破解版和正式版. 研究点数为每级点数. 每个属性最多加点255点!!!每个属性最多加点255点!!!每个属性最多加点255点!!! 重要的事情说3遍!!! #更 ...
- deepin efi 启动u盘_【2017.12.16】启动U盘简单手动制作BIOS+UEFI的syslinux/grub/boomgr/grub2互转...
本帖最后由 lintrainwy 于 2018-1-4 15:05 编辑 文件和方法来源于网上,本人做了整合,方便U盘启动 1.BIOS方式下,这个U盘启动是syslinux 6.03+grub4do ...
- 2017第22届中国国际厨房、卫浴设施展览会会刊(参展商名录)
2017第22届中国国际厨房.卫浴设施展览会会刊(参展商名录) 展会名称: 2017年第22届中国国际厨房.卫浴设施展览会 所属展馆: 上海新国际博览中心 开展时间: 2017-05-31 至 06- ...
- OSN博士必须掌握的必杀技(更新至2017/12/15)
以下内容更新至2017.12.15 概率图模型 1 Representation 11 The Bayesian Network Representation 12 Undirected Graphi ...
- 12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
2019独角兽企业重金招聘Python工程师标准>>> 12.21 php-fpm的pool 为了避免因多站点使用同一个pool时因一个站点故障导致pool出问题,进而影响使用同一个 ...
- 写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2)
写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2) template<typename T> BinaryTreeNode<T>* ...
- python 计算s= 12+ 22+ 32 +... + (10*n+2)
计算 s= 12+ 22+ 32 +- + (10*n+2) 参考代码 @author: Catwang """ def main():sum = 0n = int(in ...
- [Scrum] 12.22
昨天完成了泛海精灵的构架设计以及界面设计. 基于插件的泛海精灵更能适应敏捷开发. 泛海精灵的的框架如下图"泛海精灵0.0"所示. 泛海精灵的主界面如下图"泛海精灵0.1& ...
- 又被ESLint 调戏了!!! ESLint:Newline required at end of file but not found. eslint(eol-last) [12, 22]
又被ESLint 调戏了!!! ESLint:Newline required at end of file but not found. eslint(eol-last) [12, 22] 报错如下 ...
最新文章
- 黑盒测试方法之因果图法
- AI时代的GitHub,这个陆奇看好的方向,终于有人做了
- 深度学习100例-卷积神经网络(CNN)实现mnist手写数字识别 | 第1天
- 亚马逊部分 AWS DNS 系统遭 DDoS 攻击,已达数小时之久
- 周赛 Hd2270+总结改进
- 实战演示 Go 反射的使用方法和应用场景
- TestNg依赖详解(三)------灵活的文件配置依赖
- dateformat 返回类型_SpringBoot返回date日期格式化
- java ui自动化测试脚本,如何用Airtest编写UI自动化脚本(示例代码)
- mysql5.7空间运算,深度解析MySQL5.7之临时表空间
- python把hdf转为tif_命令行记录-python读取hdf图层,转成tif文件
- java 性能框架_Java Fork Join 框架(四)性能
- sql三表查询_滴滴SQL面试题解析:打车业务问题
- 百度认证(深度学习初级工程师)考试题1
- 如何确定自己的科研课题?
- thrift+springBoot
- html directive 内容传递,directive的传值问题(全面解析directive的传值问题)微信分享实例...
- 基于FPGA的数字交通红绿灯Verilog开发Modelsim仿真
- 流畅的python 对象引用 可变性和垃圾回收
- python 如何绘制ppt折线图