python实现验证码与进度条
1.简单验证码
# python 实现验证码
#1import random
n = 5lis = list()
count = 0
while count<n:count+=1lis.append(str(random.randint(0,9)))lis.append(chr(random.randint(65,90)))lis.append(chr(random.randint(97,122)))lis2 = random.sample(lis,n)
print(lis2)lis1 = ''.join(lis2)
print(lis1)
# for i in lis2:
# print(i,end=' ')
#2
def get_verified(lenth):code = ''for i in range(lenth):num = str(random.randint(0,9))alp = chr(random.randint(97,122))ATP = chr(random.randint(65,90))code+=str(chr(random.randint(65,90)))return code
print(get_verified(5))
2.高级验证码
# 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
# 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
from PIL import Image,ImageDraw,ImageFont
import random
from io import BytesIO,StringIO
"""
BytesIO, 能够存储数据 并以二进制的格式再返回给你
StringIO 能够存储数据 并以字符串的格式再返回给你
"""
"""
Image, 产生图片的
ImageDraw, 产生画笔的
ImageFont 控制字体样式
"""
def get_random():return random.randint(0,255),random.randint(0,255),random.randint(0,255)
def get_code(request):# 推到思路1:直接拿后端现成的图片 二进制模式打开发送# with open(r'D:\上海Python11期视频\python11期视频\BBS\avatar\u205777803476556477fm26gp0.jpg','rb') as f:# data = f.read()# return HttpResponse(data)
# 图片验证码相关
def get_code(request):# 推导思路2:利用模块产生图片 再发送给前端 pillow# img_obj = Image.new('RGB',(310,35),'green') # 生成了一个图片对象# img_obj = Image.new('RGB',(310,35),get_random()) # 生成了一个图片对象# # 先利用文件操作将图片对象写入文件中# with open('xxx.png','wb') as f:# img_obj.save(f,'png')# # 再利用文件操作将图片以二进制形式读取出来发送# with open('xxx.png','rb') as f:# data = f.read()# return HttpResponse(data)
# 图片验证码相关
def get_code(request):# 推到思路3:不再利用文件存取数据 借助于内存管理器# img_obj = Image.new('RGB',(310,35),get_random())# io_obj = BytesIO() # 生成一个内存管理器对象# img_obj.save(io_obj,'png') # 你可以将io_obj当成文件句柄f# return HttpResponse(io_obj.getvalue()) # 以二进制的方式取出数据
# 图片验证码相关
# 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
# 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
def get_code(request):# 推到思路4(终极步骤) 图片上写字img_obj = Image.new('RGB',(310,35),get_random())img_draw = ImageDraw.Draw(img_obj) # 生成一个画笔对象img_font = ImageFont.truetype('static/font/111.ttf',30) # 字体的样式"""所有的字体样式都是由.ttf结尾的文件控制的"""# 随机生成验证码 a~z A~Z 0~9code = ''for i in range(5):random_upper = chr(random.randint(65,90))random_lower = chr(random.randint(97,122))random_int = str(random.randint(0,9))temp = random.choice([random_upper,random_lower,random_int])# 将产生的随机字符写到图片上img_draw.text((i*45+45,0),temp,get_random(),img_font)code += tempprint(code)# 将随机验证码存储取来 以便其他函数调用request.session['code'] = codeio_obj = BytesIO()img_obj.save(io_obj,'png')return HttpResponse(io_obj.getvalue())
3.进度条
import time
satat = time.time()
fac = 10for i in range(fac+1):print(f'\r{(i*10):^5}% [{i*"*"} {(fac-i)*"-"}]time:{(time.time()-satat):.3f}',end='')time.sleep(1)
python实现验证码与进度条相关推荐
- python gui下载进度条_对python GUI实现完美进度条的示例详解
在用python做一个gui界面时,想搞一个进度条实时显示下载进度,但查阅很多博客,最后的显示效果都类似下面这种: 这种效果在cmd界面看着还可以,但放到图形界面时就有点丑了,所以我用canvas重新 ...
- Python中4种进度条的使用方法
如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然.要加一个进度条其实只需要几行代码.在这几行代码中,我们可以看看如何在命令行脚本以及 PySimpleGUI UI 中添加 ...
- python下载结合tqdm进度条
python下载结合tqdm进度条 本篇内容知识点: 1.tqdm库展现可迭代对象控制台进度条 2.requests简单数据爬取并下载文件 安装: pip install tqdm pip insta ...
- Python如何在控制台显示进度条
我们在写一些python程序时,如果程序运行时间较长,我们希望能够有一个进度条来动态的展示程序运行进度. 首先能想到的做法是用print将执行到第几步打印出来,但这样显然不是我们想要的进度条,显示进度 ...
- 【Python】tqdm创建进度条
1.Introduction 每当代码中涉及 for 循环时,总想显示一个进度条,虽然用处不大,但是帅就完事了.之前在 Matlab 里实现过这个功能,这次在 Python 中试试~ 2.Materi ...
- python progressbar print_python print 进度条的例子
def progress(width, percent): print "%s %d%%\r" % (('%%-%ds' % width) % (width * percent / ...
- 【Python笔记】pyqt5进度条-多线程图像分块处理防止窗体卡顿
目录 主要功能 环境配置 实现过程 1.设计ui 主界面 弹出框 窗体文件 2.主体实现 打开文件 计算函数 代码附录 title.ui titleok.ui title.py titleok.py ...
- Python的Tqdm模块——进度条配置
tqdm官网地址:https://pypi.org/project/tqdm/ Github地址:https://github.com/tqdm/tqdm 简介 Tqdm 是一个快速,可扩展的Pyth ...
- python tqdm自定义更新进度条
主要使用tqdm.update方法 案例 from tqdm import tqdm import timepbar = tqdm(total=200) # 设置总长度 for i in range( ...
最新文章
- kafka数据 落盘_Kafka架构原理?也就这么回事!
- linux谁动了我的服务器,linux系统监控之谁动了我的服务器?
- (SpringMVC)拦截器
- [转载] 深入了解Java ClassLoader、Bytecode 、ASM、cglib
- html语言怎么那么难用,css语言难学吗?
- Linux使用RSA实现免密登录(原理)
- linux基础应用和常用技巧
- Cppcheck 1 54 C/C++静态代码分析工具
- linux界面更改用户名,linux跳过用户名密码登陆界面方法
- 软件LoadRunner 产品信息(product information)
- 贝叶斯判别分析的基本步骤_贝叶斯分析助你成为优秀的调参侠(1)
- Windows 多个系统版本惊现大漏洞,攻击者可随意操作程序!
- ViewStub基本用法
- Java的Appium自动化测试教程
- 软件课程设计--仓库管理系统
- MMCODE 1003: 小谭变美日记(c++)
- 惯性力偶矩公式中j_理论力学(I)习题详解达朗贝尔原理.pdf
- 证券业上云内参:国泰君安
- 你觉得自己牛逼在哪儿?
- 【网格问题】leetcode289.生命游戏