Django博客系统注册(图形验证码接口设计和定义)
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博客系统注册(图形验证码接口设计和定义)相关推荐
- Django博客系统(短信验证码)
1. 容联云短信平台操作 1.容联云官网 容联云通讯网址:容联云通讯_短信平台.手机验证码.语音验证码.IM即时通讯.云呼叫系统等互联网通信服务 注册并登陆 2.容联云管理控制台 3.添加容联云测试手 ...
- Django博客系统注册(定义用户模型类)
1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号.组.权限以及基于cookie的用户会话. Django认证系统位置 django.contrib.auth包含认证框架 ...
- Django博客系统注册(创建用户模块应用)
1. 创建用户模块应用 创建应用users $ python manage.py startapp users 2. 注册用户模块应用 INSTALLED_APPS = [...'users.apps ...
- EduCoder答案--博客系统- 注册功能
简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 博客系统 - 注册功能 >>>查看 第1关:生成验证码并保存session 第2关:调用 ...
- 【django】图形验证码接口设计、后端逻辑、前端逻辑【15】
一.原理图 将后端⽣成的图⽚验证码存储在redis数据库2号库 结构:{'img_uuid':'0594'} 二.创建验证码⼦应⽤ python ../../manage.py startapp ve ...
- Django博客系统项目需求分析
项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...
- Django博客系统(详情页面展示)
1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...
- Django博客系统(首页分类数据展示)
1. 首页接口设计 1.请求方式 选项 方案 请求方法 GET 请求地址 /?cat_id=xxx&page_num=xxx&page_size=xxx 2.请求参数 参数名 类型 是 ...
- Django博客系统(忘记密码)
1. 忘记密码页面展示 1.在users.views.py文件中定义视图 from django.views import Viewclass ForgetPasswordView(View):def ...
最新文章
- ASP.NET 购物车
- 基于BindingSource的WinForm开发
- 类中友元(c++小细节篇一)
- 16岁成为全栈开发者:我从开发游戏到写加密货币投资机器人的心路历程
- scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
- 第三次学JAVA再学不好就吃翔(part9)--基础语法之键盘录入
- UIAutomator简介
- Spring Boot Log4j2 日志学习
- Java 8 日期和时间解读
- 使用Keil5构建GD32450i-EVAL工程
- Mac homebrew报错Error: homebrew-core is a shallow clone.
- 计算机考试用户名和密码,计算机模块考试忘记了用户名和密码怎么办
- Linux基本命令之pidof和kill/killall
- 五秒原则,做一件事之前数 5 秒,1,2,3,4,5 立马去做。比如睡觉:数五秒,立马放下手机,闭眼。...
- Tensorflow中的变量
- 地产大佬潘石屹宣布入坑Python,这是要来抢我们的饭碗了吗?
- 关于vcf文件的读取
- 6.MySQL列Cardinality(基数)
- python爬虫公众号音频源代码_python爬取音频下载的示例代码
- 谈谈奋斗里陆涛为什么不爱米莱
热门文章
- Graph + AI 2021中国峰会:TigerGraph与行业共探图与AI应用前景
- 连华为都在研究的计算机视觉,到底有多牛?
- MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
- 优化思路千万种,基于下界函数的最优化效率如何?
- GitHub日收7000星,Windows计算器项目开源即爆红!
- 这就是芬兰:先让全国1%的人学起AI!
- 科大讯飞AI开发者大赛报名开启,百万奖金等你来!
- 如何用Python实现iPhone X的人脸解锁功能?
- Spring Boot + EasyExcel 导入导出,好用到爆,可以扔掉 POI 了!
- 总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?