zoukankan      html  css  js  c++  java
  • Django 生成随机验证码图片

    Django生成验证码图片

    用到的模块: io, random, pillow(需要安装)

    安装pillow模块:

    # CMD运行下面命令
    pip install pillow
    

    代码:

    # views.py
    import random
    from PIL import Image, ImageDraw, ImageFont
    from io import BytesIO
    '''
    BytesIO: 能够存储数据,并以二进制的格式再返回
    Image: 产生图片
    ImageDraw: 产生画笔
    ImageFont: 控制字体样式
    '''
    
    # 随机生成三原色
    def get_random():
        col_num = random.randint(0, 255)
        return col_num, col_num, col_num
    
    # 生成随机验证码图片
    def get_code(request):
        # 生成图片  参数位置对应: 颜色样式, (长, 宽), 三原色
        img_obj = Image.new('RGB', (263, 33), get_random())
        # 在图片上生成一个画笔对象
        img_draw = ImageDraw.Draw(img_obj)
        # 字体样式 
        img_font = ImageFont.truetype('字体路径', '字体大小int类型')
        
        # 随机生成验证码
        code = ''
        for i in range(5):
            random_upper = chr(random.ranint(65, 90))
            random_lower = chr(random.ranint(97, 122))
            random_int = str(random.ranint(0, 9))
            temp = random.choice([random_int, random_lower, random_upper])
            
            # 将产生的而随机字符写在图片上
            # 对应参数: temp:写的内容, get_random():三原色, img_font:字体
            img_draw.text(('x轴坐标int', 'y轴坐标'), temp, get_random(), img_font) 
            code += temp
          
    	# 将随机字符串存入session
        request.session['code'] = code
        
        io_obj = BytesIO()
        img_obj.save(io_obj, 'png')
        
        return HttpResponse(io_obj.getvalue())
    

    滑动验证码参考:极验
    传送门:https://docs.geetest.com/

  • 相关阅读:
    初入博客
    winsocket入门学习
    理解音视频 PTS 和 DTS
    理解音视频 PTS 和 DTS
    FFMPEG学习----使用SDL构建音频播放器
    FFmpeg被声明为已否决的解决方案
    FFMPEG结构体分析:AVCodecParameters
    FFMPEG学习----使用SDL播放PCM数据
    如何提取CSDN博客正文内容
    遍历CSDN博客
  • 原文地址:https://www.cnblogs.com/17vv/p/11779588.html
Copyright © 2011-2022 走看看