模块
from io import BytesIO
import random
from PIL import Image,ImageDraw,ImageFont

def get_veri(req): img = Image.new(mode='RGB', size=(120, 40), #图片大小 color=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) draw = ImageDraw.Draw(img, 'RGB') font = ImageFont.truetype('home/static/font/kumo.ttf', size=30) #字体以及大小等设置 veri_list = [] for i in range(5): num = str(random.randint(0, 9)) uper = chr(random.randint(65, 90)) lower = chr(random.randint(97, 122)) choice = random.choice([num, uper, lower]) draw.text([5 + i * 24, 5], choice, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), font=font) #第一个参数表示文字的起始位置 veri_list.append(choice) f = BytesIO() img.save(f, 'png') data = f.getvalue() valid_str = "".join(veri_list) req.session["keepValidCode"] = valid_str return HttpResponse(data)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步