Django关于图片验证码显示笔记

1.访问页面 /login/
    - 内部需要创建一张图片,并且给用户返回
    - 创建一个白板 Session存放验证码

2.POST
    - 根据用户提交的数据与session里面比较

3.登录界面 和 验证码 分开URL

1:创建一张图片 pip3 install Pillow
2:在图片中写入一个随机字符串
obj = object() #对象内部包含图片信息
3.将图片写入到指定文件
4.打开指定目录文件, 读取内容
5.HttpResponse(data)
6.session
7.check_code.py(依赖:Pillow, 字体文件)
src属性后面加上? 点击验证码就会刷新

img, code = create_validate_code()
print(img, code)
f = open('xxx.png', 'wb')
img.save(f, 'PNG')
return HttpResponse(open('xxx.png','rb').read())   这是写入到文件

from io import BytesIO  #字节的io操作  在内存开辟空间 进行写和读
stream = BytesIO()
img, code = create_validate_code()
img.save(stream,"PNG")
request.session['CheckCode'] = code
return HttpResponse(stream.getvalue())   #从内存读取

def login(request):
    """
    登录
    """
    if request.method == "POST":
        if request.session['CheckCode'].upper() == request.POST.get('check_code').upper():
            print("验证码成功")

        else:
            print('验证码错误')

    return render(request, 'login.html')

 <img src = '/check_code.html' onclick = "changeCheckCode(this)">

 <script>
    function changeCheckCode(ths){
        ths.src = ths.src + "?"; #URL需要改一下 浏览器才会改变 机智的写法
    }
 <script>

 

转载于:https://www.cnblogs.com/Liang-jc/p/9265850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值