yqyn-study

准备工作:
1.将验证码包复制到apps下 verification子应用的libs文件下
2.设置验证码所需的redis库

设计图形验证码接口:

接口设计
1. 请求方式
  选项    方案
  请求方法    GET
  请求地址    image_codes/(?P<uuid>[\w-]+)/
2.请求参数:路径参数
  参数名    类型    是否必传    说明
  uuid    string    是    唯一编号
3.响应结果: image / jpg

图形验证码的实现:

from apps.verifications.libs.captcha.captcha import captcha
class
ImageCodeView(View): """图形验证码 GET http://www.***.com:8000/image_codes/uuid/ """ def get(self, request, uuid): """ 实现图形验证码逻辑 :param uuid: UUID :return: image/jpg """ # 生成图形验证码 text, image = captcha.generate_captcha() # 保存图形验证码 # 使用配置的redis数据库的别名,创建连接到redis的对象 redis_conn = get_redis_connection(\'verify_code\') # 使用连接到redis的对象去操作数据存储到redis # redis_conn.set(\'key\', \'value\') # 因为没有有效期 # 图形验证码必须要有有效期的:设计是300秒有效期 # redis_conn.setex(\'key\', \'过期时间\', \'value\') redis_conn.setex(\'img_%s\' % uuid, 300, text) # 响应图形验证码: image/jpg return HttpResponse(image, content_type=\'image/jpg\')

配置url

 urlpatterns = [
    path(\'image_codes/<uuid:uuid>/\', views.ImageCodeView.as_view()),
]

 

分类:

技术点:

相关文章: