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.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘users‘,
    ‘courses‘,
    ‘operation‘,
    ‘organzation‘,
    ‘crispy_forms‘,
    ‘xadmin‘,
    # 验证码模块
    ‘captcha‘,
]

3、同步数据库,把验证码相关的表迁移到本地数据库:

python manage.py makemigrations
python manage.py migrate

4、添加验证码的url到django路由系统:

url(r‘^captcha/‘, include(‘captcha.urls‘))

5、使用captcha自带的field生成input标签,使用django的模板语言,部署到前端页面:

from captcha.fields import CaptchaField
# 注册表单验证
class RegisterForm(forms.Form):
    email = forms.EmailField(error_messages={‘required‘: ‘邮箱为必填项‘}, required=True)
    password = forms.CharField(error_messages={‘required‘: ‘密码为必填项‘, ‘min‘: ‘密码限制为6-18位‘, ‘max‘: ‘密码限制为6-18位‘},
                               required=True, max_length=18, min_length=6)
    # 验证码自带的Field
    captcha = CaptchaField(error_messages={‘invalid‘: u‘验证码输入错误‘})

6、验证码验证逻辑:

  每次生成一个验证码,数据库就会保存相应的字母,并生成一段hashkey,hashkey会在一个隐藏的input标签中,随着用户提交表单,一起发送到后端验证,后端会根据验证码和这段hashkey进行组合验证。

时间: 2024-10-20 01:04:17

django项目中的验证码模块的相关文章

Django项目中使用Redis

Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1.1 为何要用 django-redis ? 持续更新 本地化的 redis-py URL 符号连接字符串 可扩展客户端 可扩展解析器 可扩展序列器 默认客户端主/从支持 完善的测试 已在一些项目的生产环境中作为 ca

django项目中遇到要实现定时任务

django项目中遇到要实现定时任务,所以选用了简单易用的django-crontab插件. 1.安装 django-crontab pip install django-crontab 2.定时要执行的脚本 先写个简单的测试脚本. ipoms/crons.py import datetime def update_stock_status(): start_time = datetime.datetime.now() print start_time, ", begin update_stoc

在Django项目中使用富文本编辑器

1 开发要点 现在网上有很多的富文本编辑器,包括Markdown.tinymce.UEditor.KindEditor.ckeditor等等.在项目中使用这些编辑器主要有以下几个问题: 编辑页面 在HTML页面渲染编辑器: 定制编辑器的功能,比如有哪些文本样式.图片上传.代码插入: 定制编辑器的样式,指的是编辑器整体的样式,比如高度.宽度.显示位置等等: 预览内容: 获取内容: 显示页面 显示内容: 2 Django APP 下表列出一些常用的APP,它们都可以在GitHub上找的到,链接见下文

django项目中购物车的实现

对于做项目而言,最重要的是分析清楚自己负责模块的思路,确定思路后,把每一步实现的步骤确定后,根据步骤,去实现代码,测试. 购物车的逻辑:    登录用户可以添加购物车,未登陆用户页可以添加到购物车    登陆用户的保存user.id sku_id count selected      保存在redis中,以hash和set两种方式保存    未登陆用户保存sku_id count selectd  保存再cookie中    cart = {            sku_id:{count:

异步任务利器Celery(二)在django项目中使用Celery

Celery 4.0支持django1.8及以上的版本,低于1.8的项目使用Celery 3.1. 一个django项目的组织如下: - proj/ - manage.py - proj/ - __init__.py - settings.py - urls.py 首先建立proj/proj/celery.py文件: from __future__ import absolute_import, unicode_literals import os from celery import Cele

django项目中使用FastDFS

FastDFS客户端与自定义文件存储系统 1. FastDFS的Python客户端 python版本的FastDFS客户端使用说明参考https://github.com/jefforeilly/fdfs_client-py 安装 安装提供给大家的fdfs_client-py-master.zip到虚拟环境中 pip install fdfs_client-py-master.zippip install mutagenpip isntall requests 使用 使用FastDFS客户端,需

Django项目中的实现rbac功能

一.什么是rbacrbac翻译意思就是(Role-Based Access Contro)基于角色的权限控制 二.优势1.将用户和权限的关系2.易扩展,易于维护 比如张三李四需要用客户列表访问权限,如果上百个用户,单独分配权限会麻烦,如果单独放客户列表权限在销售角色里面,张三李四放到销售角色里就OK了 三.RBAC流程图 第一张:用户表第二张:角色表第三张表:用户表和角色表多对多的关系,一个用户可以有多个角色第四张表:权限表第五张表:权限表和角色表多对多的关系,多个权限可以放到一个角色里面 四.

从数据库反向生成django项目中的models文件

1.创建一个django项目 2.在项目配置文件settings.py中配置好数据库的相关配置 3.确保所关联的数据库中已经有表存在 4.在pycharm终端进入到项目的根目录,执行python manage.py inspectdb,查看可以导入到models的相关信息 5.执行python manage.py inspectdb > (需要导入表的app)/models.py,即可完成反向生成models文件 6.进入models文件进行相关修改 原文地址:https://www.cnblo

JAVA WEB项目中生成验证码及验证实例(附源码及目录结构)

[我是一个初学者,自己总结和网上搜索资料,代码是自己敲了一遍,亲测有效,现将所有的目录结构和代码贴出来分享给像我一样的初学者] 作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解密码.刷票.论坛灌水.有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录. 原理 在servlet中随机生成一个指定位置的验证码,一般为四位,然后把该验证码保存到session中.在