verifycode验证码模版「建议收藏」

# -*- coding:utf-8 -*-
from django.shortcuts import HttpResponse
def verifycoderequest):
    # 引入绘图模块
    from PIL import Image,ImageDraw,ImageFont
    #引入随机函数模块
    import random
    #定义变量,用于画面的背景色,宽,高
    bgcolor = random.randrange20,100),random.randrange20,100),random.randrange20,100))
    width = 100
    height = 50
    #创建画面对象
    im = Image.new'RGB',width,height),bgcolor)
    #创建画笔对象
    draw = ImageDraw.Drawim)
    #调用画笔的point)函数绘制噪点
    for i in range0,100):
        #这个是画点
        xy = random.randrange0,width),random.randrange0,height))
        #这个是颜色的填充
        fill = random.randrange0,255),255,random.randrange0,255))
        draw.pointxy,fill=fill)
    #定义验证码的备用值
    str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
    #随机选取4个值作为验证码
    rand_str = ''
    for i in range0,4):
        rand_str += str[random.randrange0,lenstr))]
    #构造字体对象 把C盘的字体文件放到其它盘,因为C盘字体文件路径不好找
    font = ImageFont.truetype"E:\simsunb.ttf", 36)
    fontcolor1 = 255, random.randrange0,255), random.randrange0,255))
    fontcolor2 = 255, random.randrange0,255), random.randrange0,255))
    fontcolor3 = 255, random.randrange0,255), random.randrange0,255))
    fontcolor4 = 255, random.randrange0,255), random.randrange0,255))
    #绘制4个字
    draw.text5,2), rand_str[0], font=font, fill=fontcolor1)
    draw.text25,2), rand_str[1], font=font, fill=fontcolor2)
    draw.text50,2), rand_str[2], font=font, fill=fontcolor3)
    draw.text75,2), rand_str[3], font=font, fill=fontcolor4)
    #释放画笔
    del draw
    # request.session['verifycode'] = rand_str
    #内存文件操作
    import io
    buf = io.BytesIO)
    #将图片保存在内存中,文件类型为png
    im.savebuf,'png')
    #将内存中的图片数据返回给客户端,MIME类型为图片png
    return HttpResponsebuf.getvalue),'image/png')


#备注:
# code1 = request.session['verify'] 【登录获取图片上的验证码】
#code2 = request.POST.get'verifycode') 【获取登录表单上输入的验证码】

 

转载于:https://www.cnblogs.com/weilaibuxiangshuo/p/10401044.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注