首页 > 其他分享 >验证码

验证码

时间:2022-12-22 14:24:49浏览次数:37  
标签:code 定义 random 验证码 随机 str import

import random
#导入绘图库
from PIL import ImageDraw
#导入绘图字体库
from PIL import ImageFont
#导入图片库
from PIL import Image
#导入io库
import io
import time


#定义验证码类
class Myc(View):
    #定义随机颜色方法
    def get_random_color(self):
        R = random.randrange(255)
        G = random.randrange(255)
        B = random.randrange(255)
        return (R,G,B)
    #定义随机验证码
    def get(self,request):
        #定义画布大小 宽,高
        img_size = (120,50)
        #定义画笔 颜色种类,画布,背景颜色
        image = Image.new("RGB",img_size,'white')
        #定义画笔对象 图片对象,颜色类型
        draw = ImageDraw.Draw(image,'RGB')
        #定义随机字符
        source = '0123456789asdfghjkl'
        #定义四个字符
        #定义好容器,用来接收随机字符串
        code_str = ''
        for i in range(4):
            #获取随机颜色 字体颜色
            text_color = self.get_random_color()
            #获取随机字符串
            tmp_num = random.randrange(len(source))
            #获取字符集
            random_str = source[tmp_num]
            #将随机生成的字符串添加到容器中
            code_str += random_str
            #将字符画到画布上 坐标,字符串,字符串颜色,字体
            #导入系统真实字体,字号
            #my_font = ImageFont.truetype("c:\\windows\\Fonts\\arial.ttf",20)
            draw.text((10+30*i,20),random_str,text_color)
        #使用io获取一个缓存区
        buf = io.BytesIO()
        #将图片保存到缓存区
        image.save(buf,'png')

        #将随机码存储到session中
        request.session['code'] = code_str
        print(request.session['code'])

        #第二个参数声明头部信息
        return HttpResponse(buf.getvalue(),'image/png')

标签:code,定义,random,验证码,随机,str,import
From: https://www.cnblogs.com/djl-0628/p/16998555.html

相关文章