zoukankan      html  css  js  c++  java
  • BBS之生成随机验证码

    生成随机验证码

    views.py

    首先需要下载一个pillow模块   pip3 install pillow

    from PIL import Image,ImageDraw,ImageFont
    #导入pillow模块
    '''
    Image:生成图片
    ImageDraw:在图片上写东西  相当于画笔
    ImageFont: 控制字体样式的
    '''
    
    from  io import BytesIO,StringIO
    '''
    io是一个内存管理器模块
    BytesIO 能够帮你存储数据以二进制的格式
    StringIO  能够帮你存储数据以字符串的格式
    '''
    
    import random
    def get_random():    #为了获得颜色随机数用的  例如(255,255,255)
        return random.randint(0,255),random.randint(0,255),random.randint(0,255)

    接下来到了生成图片随机验证码

    def get_code(request):
    
        img_obj = Image.new('RGB',(360,35),get_random()) 
        #能够产生任意多张不同颜色图片, 1.图片颜色格式2.图片大小(width,height)3.颜色编号 这里随机生成的例如(20,30,42)
    
        img_draw = ImageDraw.Draw(image) #生成一个可以在图片上写字的画笔
        img_font = ImageFont.truetype('static/font/111.ttf',30) #决定字体用的  1.字体样式  2.字体大小
    
        #下面生成五位随机验证码 并写在img_obj图片上
        
        code = ''
        for i  in range(5):
            upper_str = chr(random.randint(65,90))
            lower_str = chr(random.randint(97,122))
            random_int = str(random.randint(0,9))
            temp_code = random.choice([upper_str,lower_str,random_int])
           #下面往图片上写           
    img_draw.text((65+i*45,0),temp_code,get_random(),font=img_font)
    code += temp_code print(code) #下面将产生的随机验证码存入session中 request.session['code'] = code img_obj.save(io_obj,'png') return HttpResponse(io_obj.getvalue())
    万般皆下品,唯有读书高!
  • 相关阅读:
    什么是软件测试架构师?
    Spring常用注解
    Ant 风格路径表达式
    <url-pattern>写成/和/*的区别
    Spring+SpringMVC+Hibernate
    Spring+SpringMVC+MyBatis框架整合
    Spring各个jar包的介绍
    单点登录原理与简单实现(转载)
    博客网站系统
    POM.xml配置文件详解
  • 原文地址:https://www.cnblogs.com/s686zhou/p/11615385.html
Copyright © 2011-2022 走看看