后台图片验证码功能是什么实现的

一、导包,1)check_code.py文件;2)Monaco.ttf字体;

二、通过session机制,来实现此功能,部分代码如下:

1     f = BytesIO()
2     img, code = create_validate_code()
3     request.session['check_code'] = code   
4     img.save(f, 'PNG')
5     return HttpResponse(f.getvalue())

  1)在内存中开辟一个f对象;

  2)调create_validata_code方法,生成一个验证码和一张含有该验证码的图片;

  3)在该用户的session中添加一组新的键值对,用来做用户输入验证码的校验;

  4)图片已PNG的形式保存在f中;

  5)在f中读取图片的内容,并将它返回给浏览器;

  6)即在浏览器上生成一张带有验证码的图片;

三、后台校验验证码:

  部分代码如下:

1         input_code = request.POST.get('code')
2         check_cd = request.session['check_code']   #从session里拿验证码
3         print(input_code,check_cd)
4         #分别做处理
5         return HttpResponse('...')   

  1)后台接收用户输入的验证码;

  2)后台从用户发送的ccokie中获取sessionid,而今获取其携带的后台下发的验证码;如果是用户第一次登陆,那么就没有“check_code”这个字段;

  3)后台此时已经有2个验证码了,分别是下发给用户的和用户输入的;

  4)根据具体的业务场景,分别做处理即可;

  

猜你喜欢

转载自www.cnblogs.com/qinweijujingyi/p/10178744.html