python编程快速上手(持续更新中…)
python实战项目(Django技术点)
目的:区分人和机器
1、功能分析
1、新建子应用verifications
python …/manage.py startapp verifications
2、注册settings
‘apps.verifications’
3、接收路由
from django.urls import path
from apps.verifications.views import ImageCodeView
urlpatterns = [
path('image_codes/<uuid>/',ImageCodeView.as_view()),
]
2、代码实现
1.导入captcha包
2.安装:pip install pillow
from django.views import View
class ImageCodeView(View):
def get(self,request,uuid):
# 1. 接收路由中的 uuid
# 2. 生成图片验证码和图片二进制
from libs.captcha.captcha import captcha
# text 是图片验证码的内容 例如: xyzz
# image 是图片二进制
text,image=captcha.generate_captcha()
# 3. 通过redis把图片验证码保存起来
# 3.1 进行redis的连接
from django_redis import get_redis_connection
redis_cli = get_redis_connection('default')
# 3.2 指令操作
# name, time, value
print('==============>图片验证码:', text)
redis_cli.setex(uuid,100,text)
# 4. 返回图片二进制
# 因为图片是二进制 我们不能返回JSON数据
# content_type=响应体数据类型
# content_type 的语法形式是: 大类/小类
# content_type (MIME类型)
#图片: image/jpeg , image/gif, image/png
return HttpResponse(image,content_type='image/jpeg')