随机验证码生成 与 生成随机字母和数字

随机验证码生成

 from blog import models

 from PIL import Image,ImageDraw,ImageFont
 from io import BytesIO

生成随机背景颜色

    def get_random_color():
        return (
            random.randint(0,100),
            random.randint(0, 100),
            random.randint(0, 100),
        )

生成随机字母和数字

     import random,string
        def get_rangdom_letter():
            src = string.ascii_letters + string.digits
            random_num = random.sample(src,5)
            n = ''
            for i in random_num:
                n += i
            return n

随机验证码生成

 -生成一个随机背景图片
        img = Image.new('RGB',(120,35),color=get_random_color())
    -拿到画笔,画背景颜色
        img_draw = ImageDraw.Draw(img)
    -字体设置                            字体文件       字体大小
        font = ImageFont.truetype('static/font/ss.TTF',size=25)
    -为背景颜色添加字体           随机字母数字            随机颜色
        img_draw.text((20,0), get_rangdom_letter() ,get_random_font(),font=font)
    -文件存入内存
        f = BytesIO()  相当于在内存中打开一个空文件
        img.save(f,'png') # 图片放入内存中的空文件中
    -从内存中取出来
        data = f.getvalue()

    最后返回 data 给前端渲染随机字符串
from blog import models

from PIL import Image,ImageDraw,ImageFont
from io import BytesIO

import random,string


# 随机颜色
def get_random_color():
    return (
        random.randint(0,100),
        random.randint(0, 100),
        random.randint(0, 100),
    )

# 字体随机颜色
def get_random_font():
    return (
        random.randint(200,255),
        random.randint(200, 255),
        random.randint(200, 255),
    )

# 随机字母数字结合
def get_rangdom_letter():
    src = string.ascii_letters + string.digits
    random_num = random.sample(src,5)
    n = ''
    for i in random_num:
        n += i
    return n

# 取随机字母数字结合图
def get_valid_code(request):
    # 生成一个随机背景颜色图片
    img = Image.new('RGB',(120,35),color=get_random_color())
    # 拿到画笔,画背景颜色
    img_draw = ImageDraw.Draw(img)
    # 字体设置
    font = ImageFont.truetype('static/font/ss.TTF',size=25)
    # 为背景颜色添加字体    随机字母数字
    img_draw.text((20,0), get_rangdom_letter() ,get_random_font(),font=font)

    f = BytesIO()
    img.save(f,'png') # 图片放入内存中

    data = f.getvalue()
    return HttpResponse(data)









from django.contrib import auth


# 登录认证

def login(request):
    if request.method == 'GET':
        return render(request,'login.html')
    elif request.method == 'POST':
        name = request.POST.get('name')
        pwd  = request.POST.get('pwd')
        # models.UserInfo.objects.create_superuser(username=name, password=pwd,blog_id=1,email='[email protected]')

        print(name,pwd)
        user = auth.authenticate(request,username=name,password=pwd)
        print(user)
        if user:
            print(111111111)
            auth.login(request,user)
            return JsonResponse('登陆成功')
        else:
            return redirect('/login/')
eg

猜你喜欢

转载自www.cnblogs.com/liu--huan/p/10029744.html