ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BBS之生成随机验证码

2019-10-01 14:50:26  阅读:226  来源: 互联网

标签:code obj img randint random 验证码 随机 BBS 255


生成随机验证码

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())

 

标签:code,obj,img,randint,random,验证码,随机,BBS,255
来源: https://www.cnblogs.com/s686zhou/p/11615385.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有