博客系统(其一)

验证码功能:

def get_img(request):
    import random
    def get_random_img():
        return (random.randint(0,255),random.randint(0,255),random.randint(0,255))

    from PIL import Image,ImageDraw,ImageFont
    img = Image.new("RGB",(270,40),color=get_random_img())
    #方式二
    # with open('valid_code.png','wb') as f:
    #     img.save(f)
    #
    # with open('valid_code.png','rb') as f:
    #     data = f.read()

    from io import BytesIO

    draw = ImageDraw.Draw(img)
    chandan_ttf = ImageFont.truetype("static/font/chandan.ttf",size=32)

    for i in range(0,5):
        num = str(random.randint(0,9))              #生成随机数字
        upper_alpha = chr(random.randint(65,90))    #生成随机大写字母
        low_alpha = chr(random.randint(97,122))     #生成随机小写字母
        now_char = random.choice([num,upper_alpha,low_alpha])   #使用随机列表从中选择

        draw.text((i*50,5),now_char,get_random_img(),font=chandan_ttf)      #draw.text(xy坐标,写的内容text,背景颜色,字体ttf)

    f = BytesIO()
    img.save(f,"png")
    data = f.getvalue()


    return HttpResponse(data)

猜你喜欢

转载自www.cnblogs.com/tyh-tesla/p/10052711.html
今日推荐