1.django缓存设置

django的六种缓存(mysql+redis) :https://www.cnblogs.com/xiaonq/p/7978402.html#i6
1.1安装Django缓存模块
pip install django-redis==4.12.1
1.2 syl/settings.py 中配置缓存

CACHES ={
# django存缓默认位置,redis 0号库
# default: 连接名称
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}, # django session存 reidis 1 号库(现在基本不需要使用)
"session": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
# 图形验证码,存redis 2号库
"img_code": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/2",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
# 配置session使用redis存储
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
# 配置session存储的位置: 使用cache中的 session配置
SESSION_CACHE_ALIAS = "session"

settings.py

2.新建应用verifications

  • 图片验证
  • 短信验证码
  • 邮政验证
'''2.1 在apps文件夹下新建应用: verifications'''

python ../manage.py startapp verifications # 切换到apps文件夹下执行创建命令
'''2.2 在syl/settings.py中添加应用''' 
INSTALLED_APPS = [
  'verifications.apps.VerificationsConfig',
]

'''2.3 在syl/urls.py主路由中添加'''

path('verify/', include('verifications.urls')),
'''2.4 添加子路由: verifications/urls.py'''

from django.urls import path

from . import views
urlpatterns = [
   # path('image_codes/', views.ImageCodeView.as_view())
]

3.图形验证码captcha使用

1.下载captcha压缩包captcha.zip,放到项目packages文件夹下
2.解压captcha.zip放到syl/libs文件夹下
3.解压文件中的syl/libs/captcha/captcha.py 右键运行即可生成图片验证码 unzip xxx.zip

4.在verifications/views.py中使用

from django.http import HttpResponse, HttpResponseForbidden
from django.views import View
from django_redis import get_redis_connection
from libs.captcha.captcha import captcha
class ImageCodeView(View):
def get(self,request):
uuid=request.GET.get('uuid')
if not uuid:
return HttpResponseForbidden('uuid无效')
# 3.处理业务
# 获取图片文本内容和图片二进制代码
text, image = captcha.generate_captcha()
# 4.把uuid和图片文本存入redis
redis_client = get_redis_connection('img_code') # 获取redis客户端
# 5.写入redis(是字符串)
redis_client.setex(uuid, 60 * 5, text)
# 6.返回响应图片
return HttpResponse(image, content_type='image/jpg')

Views.py

5.测试验证码接口

http://192.168.56.100:8888/verify/image_codes/?uuid=66ea64aa-fbe6-11ea-a3d3- 005056c00008

127.0.0.1:6379># select 2
OK
127.0.0.1:6379[2]># keys *
1) "66ea64aa-fbe6-11ea-a3d3-005056c00008" 127.0.0.1:6379[2]># get 66ea64aa-fbe6-11ea-a3d3-005056c00008 "JEZ6"

最新文章

  1. YII Install 安装
  2. jquery分页插件
  3. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
  4. texlive2015+texstudio
  5. 让我们一起Go(十三)
  6. C语言 文件操作1--二进制文件与文本文件
  7. java JDK8 学习笔记——第16章 整合数据库
  8. Perl 语法 - 高级特性
  9. git命令学习用
  10. C语言部分
  11. HDU 1452 Happy 2004(因子和的积性函数)
  12. JavaScript的常见事件和Ajax小结
  13. C#Winform窗口特效源码(1)
  14. libthrift0.9.0解析(三)之TProtocol&TTransport
  15. android之PackageManager简介
  16. lua的通用print函数
  17. 对称与非对称加密;SSL;HTTPS;AJP
  18. Failed to start docker.service: Unit not found.
  19. mongodb分页查询
  20. 【Android】Handler详解

热门文章

  1. 通过阿里镜像网站制作iso文件安装CentOS6.9
  2. Spring Security 实战干货:OAuth2授权回调的处理机制
  3. 适用初学者的5种Python数据输入技术
  4. seaborn库中柱状图绘制详解
  5. CDC(跨时钟域)和亚稳态
  6. iscsi客户端常用操作
  7. JVM简单入门
  8. PHP中的变量覆盖漏洞
  9. 重闯Sqli-labs关卡第三天(11-15关)
  10. 为什么 @Value 可以获取配置中心的值?