第三方验证码插件的使用
官方文档:http://django-simple-captcha.readthedocs.io/en/latest/usage.html#installation
github:https://github.com/mbi/django-simple-captcha
django-simple-captcha 一个很简单的django验证组件,实现原理是数据库中生成key和随机字符,然后将key与sn存入数据库,用户提交时根据key去数据库中查询比对是否正确,没有使用常用的cookies session, 也挺简单,每个验证码都有过期时间,程序会自动清除过期的验证码
django 版本:1.9.1
安装
pip install django-simple-captcha==0.4.6
在setting 中配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'captcha',
]
url中的配置
加入url(r'^captcha/', include('captcha.urls')),
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^captcha/', include('captcha.urls')),
]
数据库的迁移
makemigrations
migrate
app下自定义froms.py文件,创建一个注册form
from django import forms
from captcha.fields import CaptchaField
class RegisterForm(forms.Form):
email = forms.EmailField(required=True)
password = forms.CharField(required=True, min_length=5)
captcha = CaptchaField(error_messages={
"invalid": u"验证码错误"})
视图函数中处理
class RegisterView(View):
"""注册视图"""
def get(self, request):
register_form = Registerform() # 获取表单对象 然后返回前端
return render(request, 'register.html', {
'register_form': register_form})
def post(self, request):
print(reque