BBS之生成随机验证码
生成随机验证码
views.py
首先需要下载一个pillow模块 pip3 install pillow
from PIL import Image,ImageDraw,ImageFont #导入pillow模块 ''' Image:生成图片 ImageDraw:在图片上写东西 相当于画笔 ImageFont: 控制字体样式的 ''' from io import BytesIO,StringIO ''' io是一个内存管理器模块 BytesIO 能够帮你存储数据以二进制的格式 StringIO 能够帮你存储数据以字符串的格式 ''' import random def get_random(): #为了获得颜色随机数用的 例如(255,255,255) return random.randint(0,255),random.randint(0,255),random.randint(0,255)
接下来到了生成图片随机验证码
def get_code(request): img_obj = Image.new('RGB',(360,35),get_random()) #能够产生任意多张不同颜色图片, 1.图片颜色格式2.图片大小(width,height)3.颜色编号 这里随机生成的例如(20,30,42) img_draw = ImageDraw.Draw(image) #生成一个可以在图片上写字的画笔 img_font = ImageFont.truetype('static/font/111.ttf',30) #决定字体用的 1.字体样式 2.字体大小 #下面生成五位随机验证码 并写在img_obj图片上 code = '' for i in range(5): upper_str = chr(random.randint(65,90)) lower_str = chr(random.randint(97,122)) random_int = str(random.randint(0,9)) temp_code = random.choice([upper_str,lower_str,random_int]) #下面往图片上写
img_draw.text((65+i*45,0),temp_code,get_random(),font=img_font) code += temp_code print(code) #下面将产生的随机验证码存入session中 request.session['code'] = code img_obj.save(io_obj,'png') return HttpResponse(io_obj.getvalue())
万般皆下品,唯有读书高!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!