在用户登录或注册等很多场景需要使用验证码图片。在github上有很多开源的项目,本文就其中一种进行举例。
github中的项目:django-simple-captcha
效果如下:为四个大写字母组成
安装条件: django 1.8+ , 支持 python 3
1、安装:
pip install django-simple-captcha
2、将captcha
添加到setting.py中的INSTALLED_APPS中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
'captcha',
]
3、执行下 python manage.py migrate
4、添加到url.py中:
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls),
url(r'^captcha/', include('captcha.urls')),
5、添加到表单:
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=10)
captcha = CaptchaField()
6、在view.py中import表单,并传递到前端页面:
from ... import ...
class RegisterView(View):
def get(self, request):
register_form = RegisterForm()
return render(request, 'register.html', {'register_form': register_form})
7、在前端html页面中显示图片即可
{{ register_form.captcha }}
当然,该项目还可以执行ajax,具体方法:参见文档
github中还有很多优秀的验证码项目,回头在多尝试一些。