【Python】验证码

我们都知道验证码是一张图片,这样程序自动识别的难度大,安全性高。

设计到图片,先来看一下img标签里的src属性,也是实现验证码的一个小原理

我们都知道src属性可以直接把图片拿过来:
比如说拿到本地的图片<img src="/static/timg.jpg" alt=""> 就在直接可以显示在页面上

那它是怎么实现的呢?

其实src属性同样像服务端发送了一个请求,Django服务端接收到之后,自动把本地文件读取并返回给了客户端,就实现了上面的效果

下面来自己实现一下:
html:<img src="/tu2.html/" alt=""> #src属性是一个url,
对应处理函数:

def tu2(request):
    f=open("static/timg.jpg","rb")
    data=f.read()
    f.close()
    return HttpResponse(data)

如此就能发现两者效果相同。

下面开始讲验证码:
先贴上借鉴的博客,内含需要的文件:
https://blog.csdn.net/weixin_42100915/article/details/80851474

先生成验证码效果:
后台处理函数:

def yanzhengma(request):
    f= BytesIO()              #创建生成一个内存地址
    img, code=create_validate_code()  #生成验证码, code是验证码文字内容,img是验证码对象
    print(code)
    img.save(f,"PNG")         #把验证码写入内存地址
    return HttpResponse(f.getvalue())  #把验证码从内存中读出来并返回给客户端
def register(request):
    return render(request,"register.html")

HTML

<body>
<form action="">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值