1. 准备captcha包(该包用于生成图形验证码)

1.将生成图片验证码的库复制到新建的libs包中。

2.安装Python处理图片的库

这儿可能会变红显示错误:

解决方案:在虚拟环境中安装Pillow。执行pip install Pillow即可

2. 图形验证码后端接口设计

1.请求方式

选项 方案
请求方法 GET
请求地址 imagecode?uuid=xxxxx-xxxx-xxxxxx

2.请求参数:路径参数

参数名 类型 是否必传 说明
uuid string 唯一编号

3.响应结果:image/jpeg

3. 图形验证码后端实现

1.图形验证码视图

from django.http import HttpResponseBadRequest,HttpResponse
from libs.captcha.captcha import captcha
from django_redis import get_redis_connectionclass ImageCodeView(View):def get(self,request):#获取前端传递过来的参数uuid=request.GET.get('uuid')#判断参数是否为Noneif uuid is None:return HttpResponseBadRequest('请求参数错误')# 获取验证码内容和验证码图片二进制数据text, image = captcha.generate_captcha()# 将图片验内容保存到redis中,并设置过期时间redis_conn = get_redis_connection('default')redis_conn.setex('img:%s' % uuid, 300, text)# 返回响应,将生成的图片以content_type为image/jpeg的形式返回给请求return HttpResponse(image, content_type='image/jpeg')

2.总路由

from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),# include 参数1要设置为元组(urlconf_module, app_name)# namespace 设置命名空间path('', include(('users.urls', 'users'), namespace='users')),
]

3.子路由

from django.urls import path
from users.views import ImageCodeViewurlpatterns = [# 参数1:路由# 参数2:视图函数# 参数3:路由名,方便通过reverse来获取路由path('imagecode/', ImageCodeView.as_view(),name='imagecode'),
]

4. 修改模板中图片验证码HTML代码

1.html中的原代码如下

<img src="{% static 'img/image_code.png' %}" @click="generate_image_code" alt="" style="width: 110px;height: 40px;">

2.修改如下

<img :src="data:image_code_url" @click="generate_image_code" alt="" style="width: 110px;height: 40px;">

Django博客系统注册(图形验证码接口设计和定义)相关推荐

  1. Django博客系统(短信验证码)

    1. 容联云短信平台操作 1.容联云官网 容联云通讯网址:容联云通讯_短信平台.手机验证码.语音验证码.IM即时通讯.云呼叫系统等互联网通信服务 注册并登陆 2.容联云管理控制台 3.添加容联云测试手 ...

  2. Django博客系统注册(定义用户模型类)

    1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号.组.权限以及基于cookie的用户会话. Django认证系统位置 django.contrib.auth包含认证框架 ...

  3. Django博客系统注册(创建用户模块应用)

    1. 创建用户模块应用 创建应用users $ python manage.py startapp users 2. 注册用户模块应用 INSTALLED_APPS = [...'users.apps ...

  4. EduCoder答案--博客系统- 注册功能

    简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 博客系统 - 注册功能 >>>查看 第1关:生成验证码并保存session 第2关:调用 ...

  5. 【django】图形验证码接口设计、后端逻辑、前端逻辑【15】

    一.原理图 将后端⽣成的图⽚验证码存储在redis数据库2号库 结构:{'img_uuid':'0594'} 二.创建验证码⼦应⽤ python ../../manage.py startapp ve ...

  6. Django博客系统项目需求分析

    项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...

  7. Django博客系统(详情页面展示)

    1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...

  8. Django博客系统(首页分类数据展示)

    1. 首页接口设计 1.请求方式 选项 方案 请求方法 GET 请求地址 /?cat_id=xxx&page_num=xxx&page_size=xxx 2.请求参数 参数名 类型 是 ...

  9. Django博客系统(忘记密码)

    1. 忘记密码页面展示 1.在users.views.py文件中定义视图 from django.views import Viewclass ForgetPasswordView(View):def ...

最新文章

  1. ASP.NET 购物车
  2. 基于BindingSource的WinForm开发
  3. 类中友元(c++小细节篇一)
  4. 16岁成为全栈开发者:我从开发游戏到写加密货币投资机器人的心路历程
  5. scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
  6. 第三次学JAVA再学不好就吃翔(part9)--基础语法之键盘录入
  7. UIAutomator简介
  8. Spring Boot Log4j2 日志学习
  9. Java 8 日期和时间解读
  10. 使用Keil5构建GD32450i-EVAL工程
  11. Mac homebrew报错Error: homebrew-core is a shallow clone.
  12. 计算机考试用户名和密码,计算机模块考试忘记了用户名和密码怎么办
  13. Linux基本命令之pidof和kill/killall
  14. 五秒原则,做一件事之前数 5 秒,1,2,3,4,5 立马去做。比如睡觉:数五秒,立马放下手机,闭眼。...
  15. Tensorflow中的变量
  16. 地产大佬潘石屹宣布入坑Python,这是要来抢我们的饭碗了吗?
  17. 关于vcf文件的读取
  18. 6.MySQL列Cardinality(基数)
  19. python爬虫公众号音频源代码_python爬取音频下载的示例代码
  20. 谈谈奋斗里陆涛为什么不爱米莱

热门文章

  1. Graph + AI 2021中国峰会:TigerGraph与行业共探图与AI应用前景
  2. 连华为都在研究的计算机视觉,到底有多牛?
  3. MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
  4. 优化思路千万种,基于下界函数的最优化效率如何?
  5. GitHub日收7000星,Windows计算器项目开源即爆红!
  6. 这就是芬兰:先让全国1%的人学起AI!
  7. 科大讯飞AI开发者大赛报名开启,百万奖金等你来!
  8. 如何用Python实现iPhone X的人脸解锁功能?
  9. Spring Boot + EasyExcel 导入导出,好用到爆,可以扔掉 POI 了!
  10. 总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?