码迷,mamicode.com
首页 > 其他好文 > 详细

【DJango项目】第一章 验证码

时间:2020-02-24 15:22:56      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:mob   libs   connect   rate   res   eid   验证   执行   pattern   

我们现在在工程目录/meiduo_mall/apps中创建Django应用users,并在配置文件中注册users应用。

python manage.py startapp users  ---->  INSTALL_APPS注册

class User(AbstractUser):
    """用户模型类"""
    mobile = models.CharField(max_length=11, unique=True, verbose_name=手机号)

    class Meta:
        db_table = tb_users
        verbose_name = 用户
        verbose_name_plural = verbose_name

在配置文件中配置 

AUTH_USER_MODEL = users.User

执行数据库迁移

python manage.py makemigrations
python manage.py migrate

 

图片验证码

python manage.py startapp verifications   ---->  INSTALL_APPS注册

setting.py

# redis配置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.186.128:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.186.128:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "verify_codes": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.186.128:6379/2",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },

 

urls.py

urlpatterns = [
    url(rimage_codes/(?P<image_code_id>\d+)$, views.ImangeCodeView.as_view()),
]

constants.py

# 图片验证码有效期 单位秒
IMAGE_CODE_REDIS_EXPIRES = 300

view.py

from django.http import HttpResponse
from django_redis import get_redis_connection
from rest_framework.views import APIView

# Create your views here.
from meiduo_mall.libs.captcha.captcha import captcha
from verifications import constants


class ImangeCodeView(APIView):
    """
    图片验证码
    """

    def get(self, request, image_code_id):
        # 生成验证码图片
        text, image = captcha.generate_captcha()
     # 获取redis数据库地址 
        redis_conn = get_redis_connection("verify_codes")
# 存入redis数据库 redis_conn.setex(
"img_%s" % image_code_id, constants.IMAGE_CODE_REDIS_EXPIRES, text)      # 返回数据到前端 return HttpResponse(image, content_type="images/jpg")

 

请求方式:GET /image_code/<image_code_id>/

                  传入 image_code_id 图片验证码编号 

返回内容 :返回图片文件 

 

【DJango项目】第一章 验证码

标签:mob   libs   connect   rate   res   eid   验证   执行   pattern   

原文地址:https://www.cnblogs.com/oscarli/p/12356737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!