python flask怎么用pillow实现登录验证码验证
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"python flask怎么用pillow实现登录验证码验证",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python flask
千家信息网最后更新 2025年01月19日python flask怎么用pillow实现登录验证码验证
这篇文章主要讲解了"python flask怎么用pillow实现登录验证码验证",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python flask怎么用pillow实现登录验证码验证"吧!
1、安装pillow 并编写validatecode.py
from PIL import Image, ImageFont, ImageDraw, ImageFilterimport randomdef validate_picture(): total = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345789' # 图片大小130x50 width = 130 height = 50 # 先生成一个新图片对象 im = Image.new('RGB', (width, height), 'white') # 设置字体 font = ImageFont.truetype('C:\\Windows\\Fonts\\Calibri.ttf', 50) # font = ImageFont.load_default().font # 创建draw对象 draw = ImageDraw.Draw(im) str1 = '' # 输入每一个文字 for item in range(5): text = random.choice(total) str1 += text draw.text((5+random.randint(4, 7)+20*item, 5+random.randint(3, 7)), text=text, fill='blue', font=font) # 划几根干扰线 for num in range(8): x1 = random.randint(0, width/2) y1 = random.randint(0, height/2) x2 = random.randint(0, width) y2 = random.randint(height/2, height) draw.line(((x1, y1), (x2, y2)), fill='black', width=1) # 模糊下,加个滤镜 im = im.filter(ImageFilter.FIND_EDGES) return im, str1if __name__ == '__main__': im, str1 = validate_picture() print(str1)
2、编写view 函数
@admin.route('/login/code/')def get_code(): image, str1 = validate_picture() # 讲验证码图片以二进制形式写入内存,防止图片都放在文件夹中,占用磁盘空间 buf = BytesIO() image.save(buf, 'jpeg') buf_str = buf.getvalue() # 把二进制作为response发回前端,并设置头部字段 response = make_response(buf_str) response.headers['Content-Type'] = 'image/gif' # 验证码字符串存储在seesion中 session['image'] = str1 return response
3、html模板部分
管理员登陆{% for msg in get_flashed_messages() %}{{ msg }}
{% endfor %}
感谢各位的阅读,以上就是"python flask怎么用pillow实现登录验证码验证"的内容了,经过本文的学习后,相信大家对python flask怎么用pillow实现登录验证码验证这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
验证
登录
图片
学习
二进制
内容
对象
内存
函数
前端
大小
头部
字体
字段
字符
字符串
就是
形式
思路
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何进行数据库权限管理
国家机关不履行网络安全法
我的世界服务器极限生存怎么开
网络安全日公安
软件开发如何写专利
重庆时钟同步子母钟服务器
小绵羊为啥总加载不出服务器
2016年云南贸易数据库
高级网络技术考试
每个平台买个服务器都可以备案吗
软件开发项目上线
数据库截图
瑞庭网络技术 电话
电脑登录云服务器方法
举三个实例说明网络技术的运用
深圳市网络安全应急支撑单位
网络安全知识大赛心得
锐捷服务器多少钱
学习网络安全管理制度总结
网络安全法第76
c语言 数据库
区块链服务器怎么交易
高中毕业了想学软件开发
数据库主键可以没有吗
gpu服务器和cpu的区别
网络技术标准和协议
西安嵌入式软件开发外包
工信部网络安全 举报电话
dj数据库映射模型
超凡先锋两个服务器可以同时玩吗