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实现验证码与进度条相关推荐

  1. python gui下载进度条_对python GUI实现完美进度条的示例详解

    在用python做一个gui界面时,想搞一个进度条实时显示下载进度,但查阅很多博客,最后的显示效果都类似下面这种: 这种效果在cmd界面看着还可以,但放到图形界面时就有点丑了,所以我用canvas重新 ...

  2. Python中4种进度条的使用方法

    如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然.要加一个进度条其实只需要几行代码.在这几行代码中,我们可以看看如何在命令行脚本以及 PySimpleGUI UI 中添加 ...

  3. python下载结合tqdm进度条

    python下载结合tqdm进度条 本篇内容知识点: 1.tqdm库展现可迭代对象控制台进度条 2.requests简单数据爬取并下载文件 安装: pip install tqdm pip insta ...

  4. Python如何在控制台显示进度条

    我们在写一些python程序时,如果程序运行时间较长,我们希望能够有一个进度条来动态的展示程序运行进度. 首先能想到的做法是用print将执行到第几步打印出来,但这样显然不是我们想要的进度条,显示进度 ...

  5. 【Python】tqdm创建进度条

    1.Introduction 每当代码中涉及 for 循环时,总想显示一个进度条,虽然用处不大,但是帅就完事了.之前在 Matlab 里实现过这个功能,这次在 Python 中试试~ 2.Materi ...

  6. python progressbar print_python print 进度条的例子

    def progress(width, percent): print "%s %d%%\r" % (('%%-%ds' % width) % (width * percent / ...

  7. 【Python笔记】pyqt5进度条-多线程图像分块处理防止窗体卡顿

    目录 主要功能 环境配置 实现过程 1.设计ui 主界面 弹出框 窗体文件 2.主体实现 打开文件 计算函数 代码附录 title.ui titleok.ui title.py titleok.py ...

  8. Python的Tqdm模块——进度条配置

    tqdm官网地址:https://pypi.org/project/tqdm/ Github地址:https://github.com/tqdm/tqdm 简介 Tqdm 是一个快速,可扩展的Pyth ...

  9. python tqdm自定义更新进度条

    主要使用tqdm.update方法 案例 from tqdm import tqdm import timepbar = tqdm(total=200) # 设置总长度 for i in range( ...

最新文章

  1. kafka数据 落盘_Kafka架构原理?也就这么回事!
  2. linux谁动了我的服务器,linux系统监控之谁动了我的服务器?
  3. (SpringMVC)拦截器
  4. [转载] 深入了解Java ClassLoader、Bytecode 、ASM、cglib
  5. html语言怎么那么难用,css语言难学吗?
  6. Linux使用RSA实现免密登录(原理)
  7. linux基础应用和常用技巧
  8. Cppcheck 1 54 C/C++静态代码分析工具
  9. linux界面更改用户名,linux跳过用户名密码登陆界面方法
  10. 软件LoadRunner 产品信息(product information)
  11. 贝叶斯判别分析的基本步骤_贝叶斯分析助你成为优秀的调参侠(1)
  12. Windows 多个系统版本惊现大漏洞,攻击者可随意操作程序!
  13. ViewStub基本用法
  14. Java的Appium自动化测试教程
  15. 软件课程设计--仓库管理系统
  16. MMCODE 1003: 小谭变美日记(c++)
  17. 惯性力偶矩公式中j_理论力学(I)习题详解达朗贝尔原理.pdf
  18. 证券业上云内参:国泰君安
  19. 你觉得自己牛逼在哪儿?
  20. 【网格问题】leetcode289.生命游戏

热门文章

  1. 接口测试工具postman安装及使用
  2. jquery 插件和后台模板搜集
  3. 企业路由器应用——DMZ口
  4. linux socket 详解
  5. EntLib.com Forum/YAF 开源论坛系统!可免费下载!
  6. 【温故知新】CSS学习笔记(后代和子代选择器)
  7. 通用分销渠道和通用产品组的解析
  8. 维护工厂的装运点确认
  9. sap 销售订单过量交货和拣配有关设置
  10. 删除归档日志_ORA-00257:archiver error.Connect internal only, until freed的问题