django项目登录中使用图片验证码的实现方法-创新互联
应用下创建untils文件夹放置封装图片验证码的函数

创建validCode.py文件定义验证码规则
import random
def get_random_color():
return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
def get_valid_code_img(request):
# 方式:
from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
import random
img = Image.new("RGB", (270, 40), color=get_random_color())#生成一个宽270*高40的画布,背景颜色随机
draw = ImageDraw.Draw(img)#进行绘画
kumo_font = ImageFont.truetype("static/font/kumo.ttf", size=32)#字体 字体大小
valid_code_str = ""
for i in range(5):
random_num = str(random.randint(0, 9))#0-9的随机数 9
random_low_alpha = chr(random.randint(97, 122))#a 到 z 随机的一个小写字母 b
random_upper_alpha = chr(random.randint(65, 90))#A 到 Z 随机的一个大写字母 Q
random_char = random.choice([random_num, random_low_alpha, random_upper_alpha]) #2
draw.text((i * 50 + 20, 5), random_char, get_random_color(), font=kumo_font) #往长方形上写字
# 保存验证码字符串
valid_code_str += random_char #85656
width=270
height=40
for i in range(10):
# draw.point([random.randint(0, width), random.randint(0, height)], fill=get_random_color())#画小点
x = random.randint(0, width)
y = random.randint(0, height)
draw.arc((x, y, x + 4, y + 4), 0, 90, fill=get_random_color()) #小线段
request.session["valid_code_str"] = valid_code_str
f = BytesIO()
img.save(f, "png") #png
data = f.getvalue()
return data另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:django项目登录中使用图片验证码的实现方法-创新互联
URL链接:http://jxruijie.cn/article/goseg.html
