当前位置:网站首页>Flask框架实现注册加密功能详解【Flask企业课学习】
Flask框架实现注册加密功能详解【Flask企业课学习】
2022-08-04 17:56:00 【51CTO】
Table of Contents
一.前言
本学期开了为期一个月的flask框架基础课,前面的知识之前都有接触过,最近的综合运用Flask框架的flask-bootstrap模板 、Flaskform表单和flask-sqlalchemy数据库框架实现基本注册功能和使用werkzeug密码散列计算实现注册的密码安全性。也是第一次接触。
涉及的内容:
1.能够综合运用Flask框架的flask-bootstrap模板 、Flaskform表单和flask-sqlalchemy数据库框架实现基本注册功能
2.能够使用werkzeug密码散列计算实现注册的密码安全性
二.werkzeug密码散列值
密码散列函数是一种 单向散列函数 ,将任意长度的消息压缩到某一固定长度的 消息摘要 ,一个理想的密码散列函数应该有四个主要的特性:对于任何一个给定的消息,它都很容易就能运算出散列数值。
werkzeug中的security模块实现了密码散列值的计算。1.from werkzeug.security import check_password_hash,generate_password_hash
generate_password_hash函数的输入为原始密码,返回密码散列值的字符串形式,供存入用户数据库。
check_password_hash数据库中存放的密码hash值,和用户输入的密码,如果一致,返回True,如果不一致,返回False。
用户前端输入,传值给后端,密码字段传入password函数,执行generate_password_hash
方法,返回密码散列值的字符串形式。函数 check_password_hash 检查给出的hash密码与传入的密码是否相符。如果一致,返回True,如果不一致,返回False。
三.后端详解
3.1准备
引入werkzeug中的security模块,
引入FlaskForm模块
引入SQLAlchemy模块
3.2创建数据库
先创建一下我们的数据库:
如下:
3.4 register视图函数
如果传入的值不为空的话,将前端传递的username和password作为参数传入User()
User()方法处理加密后的字段返回赋值给user。
存入数据库:
将known赋值为False,响应给前端
前端输出提示信息:注册成功

3.5 使用Flaskform编写register表单代码
上述代码解释:
这块比较简单一些,作用就是规定了name表单的最小输入为8个字符,最大为16个字符,password同理。
截图如下:
四,前端
4.1使用flask-bootstrap模板完成register.html页面渲染代码
之前后端写过,传值到前端 known,如果通过的话赋值 known为False,前端这里,如果判断为当前为数据库里存在的用户,会输出Happy to see you again!
五.效果图
效果图如下:




边栏推荐
猜你喜欢
随机推荐
July 31, 2022 Summary of the third week of summer vacation
小程序笔记3
mysql cdc 为什么需要RELOAD 这个权限?这个权限在采集数据的过程中的作用是什么?有哪
"Involution" Index Analysis Based on AHP
Literature Review on Involution of College Students
从-99打造Sentinel高可用集群限流中间件
R语言ggpubr包的ggtexttable函数可视化表格数据(直接绘制表格图或者在图像中添加表格数据)、使用ggarrange函数将表格数据和可视化图像组合起来(表格数据在可视化图像下方)
R语言ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图、设置折线和数据点边框颜色
pyhon爬虫之爬取图片(亲测可用)
2022年五一数学建模C题讲解
数仓建模面试
Investigation and Research Based on the Involution Behavior of College Students
darknet源码阅读笔记-02-list.h和lish.c
电源测试系统-ATE电源测试系统-ACDC电源模块测试系统NSAT-8000
LeetCode 899. Ordered Queues
语音识别学习资源
LVS+Keepalived群集
华为云计算HCIE之oceanstor仿真器的安装教程
基于clipboard.js对复制组件的封装
群友求助,一周没有搞定的需求,3分钟就解决了?








