【DJango项目】第一章 验证码

我们现在在工程目录/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(r‘image_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 图片验证码编号

返回内容 :返回图片文件

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

时间: 2024-08-02 04:04:27

【DJango项目】第一章 验证码的相关文章

django项目中的验证码模块

1.安装验证码模块: pip install django-simple-captcha==0.4.6 2.验证码模块注册到django setting.py中的 INSTALLED_APPS: # 注册app的配置 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.m

一 Django框架介绍——用pycharm创建Django项目

Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件.并于2005年7月在BSD许可证下发布. 这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的. 更多Django框架http://code.ziqiangxuetang.com/django/django-qrcode.htm

《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

书籍出处:https://www.packtpub.com/web-development/django-example原作者:Antonio Melé 2016年12月10日发布(没有进行校对,有很多错别字以及模糊不清的语句,请大家见谅) 2017年2月7日精校完成(断断续续的终于完成了第一章精校,感觉比直接翻译还要累,继续加油) 2017年2月10日再次进行精校(感谢大牛@kukoo的精校!) (译者注:本人目前在杭州某家互联网公司工作,岗位是测试研发,非常喜欢python,目前已经使用Dj

Django电商第一章:立项需求分析和结构设计

Django电商第一章:立项需求分析和数据库设计 电商的7种商业模式介绍 电商即电子商务(Electronic Commerce),是是以信息网络技术为手段,以商品交换为中心的商务活动,其有多种模式: ①B2B(Business to Business):电子交易的双方都是商家,使用网络技术完成商务交易,如阿里巴巴.慧聪网等. ②B2C(Business to Consumer):直接面向消费者销售产品和服务商业零售模式,一般以网络零售业为主,主要借助互联网完成在线销售活动,如唯品会等. ③C2

第一章 项目背景【制作属于自己的wmts服务多源空间数据服务整合开发--减少项目成本让客户更放心】

     最近项目中遇到了基于skyline 加载离线地图的这样的工作.针对这个问题找了好多的解决方案都没有能够解决.最后因缘巧合的想到了一个构建本地wmts服务[skyline6.5以上的版本支持].通过网上大量的浏览搜索资料.找了一些开源的项目.终于把问题给解决了. 1.数据的离线下载 开发的工具支持谷歌.必应.天地图.高德等等互联网上的数据的下载然后数据重组整合多源的数据整合发布为wmts. 支持 对arcgis发布的wms rest  title.image等格式的服务代理转换为wm

python+Django创建第一个项目

1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检查是否安装好 1.4 查看Django的管理工具---django-admin.py命令 2. 创建第一个项目 HelloWorld: 项目的容器. manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. HelloWorld/__init__.py: 一个空

第一章 使用功能测试协助安装Django

1.1 第一个简单的测试--断言 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser,title 1.2 让Django运行起来 创建django项目  django-admin.exe startproject superlists(# django-admin.exe startproject +

第一章 创建WEB项目

第一章   创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>>[Dynamic Web Project],这个就代表新建的项目是WEB项目 提示:如果没有找到[Dynamic Web Project]请看下一步 2 如果我们找不到[Dynamic Web Project]这个选项,说明以前没有建立过WEB项目,所以不在快捷导航里,这时我们点击[Other]这个选项

第一个简单的django项目

第一个Django项目 打开一个pycharm,File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本 在新的PyCharm窗口打开新建的Django项目 ###先写一个最简单的静态的web from django.conf.urls import url from django.contrib import admin from django.shortcuts import HttpResponse,render #(读网页的一个方法) d