一、导包,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)根据具体的业务场景,分别做处理即可;