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进行组合验证。

posted @ 2017-07-31 11:40  还是原来那个我  阅读(217)  评论(0编辑  收藏  举报