pycharm+django注册实现图形验证码后端

一,业务逻辑分析

记载图形验证码视图中的实现部分

二,接口的实现

1,注册子应用verifications实现此功能,到项目app目录中,使用django-admin startapp verifications
2,在主应用中注册视图(可有可无,因为此子应用没有模板和迁移功能)
3,在子应用中新建urls,和主目录连接起来
主应用的urls代码块

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url('admin/', admin.site.urls),
    url(r'^',include('verifications.urls'))
]

子应用urls代码块

from django.conf.urls import url

from meiduo_project.apps.verifications import views

urlpatterns=[
    # 图形验证码
    url(r'^image_codes/(?P<uuid>[\w-]+)$', views.ImageCodeView.as_view()),
]

uuid代表的是图形验证码的唯一标识,作为接口实现的参数进行传递,标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)
正则表达式采取匹配uuid的字符串形式,即字符加‘-’,匹配出来传递到redis数据库作为key,

后端逻辑实现

from django.shortcuts import render
from django_redis import get_redis_connection
from verifications.libs.captcha.captcha import captcha
# Create your views here.
from django.views import View
from django import http


class ImageCodeView(View):
    def get(self, request, uuid):
        # 接收参数
        # 校验参数
        # 实现主体业务
        # 生成图形验证码
        text, image = captcha.generate_captcha()
        # 保存图形验证码
        redis_conn = get_redis_connection('verify_code')
        # redis_conn.setex('key', 'expires', 'value')
        redis_conn.setex('img_%s' % uuid, 300, text)
        # 响应图形验证码
        # return http.HttpResponse('响应体','数据类型')
        return http.HttpResponse(image, content_type='image/jpg')

需要准备一个拓展包,需要一个拓展包captcha,进行图像的处理,在子应用下创建包libs,放入,并pip下载Pillow库,用于python图像处理
保存图形验证码,是将使用capcha生成的,保存到redis数据库中,在项目的setting中配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值