Django 验证码之django_simple_captcha
一. 安装
pip install django_simple_captcha
二. 加载到INSTALLED_APPS中
INSTALLED_APPS = [
# 验证码
'captcha'
]
三. migrate将验证码表加载到数据库
python manage.py migrate
四. 配置路由
url(r'^captcha/', include('captcha.urls')),
五. 在Form中使用
from django import forms from captcha.fields import CaptchaField class RegisterForms(forms.Form): email = forms.EmailField(required=True, error_messages={ 'request': '用户名不能为空', 'invalid': '格式错误', 'max_length': '最大长度为32位' }) password = forms.CharField(required=True, max_length=32, error_messages={ 'request': '密码不能为空', 'max_length': '最大长度为32位' }) captcha = CaptchaField(error_messages={
'invalid': '验证码错误',
})
六. 后端代码
from django.shortcuts import render from django.views.generic import View from django.contrib.auth.hashers import make_password from .models import UserProfile from .forms import LoginForms, RegisterForms class RegisterView(View): def get(self, request): register_form = RegisterForms() return render(request, 'register.html', {'captcha': register_form}) def post(self, request): register_form = RegisterForms(request.POST) if register_form.is_valid(): email = register_form.cleaned_data.get('email', '') password = register_form.cleaned_data.get('password', '') user = UserProfile() user.username = email user.email = email user.password = make_password(password) user.save() else: return render(request, 'login.html', {'error': register_form.errors})
七. 前端使用
{{captcha.captcha}}

浙公网安备 33010602011771号