图片验证码的显示,在github上有相应的app, https://github.com/mbi/django-simple-captcha
官方文档:https://django-simple-captcha.readthedocs.io/en/latest/
执行以下步骤进行安装:
Install
django-simple-captcha
via pip:pip install django-simple-captcha
Add
captcha
to theINSTALLED_APPS
in yoursettings.py
Run
python manage.py migrate
Add an entry to your
urls.py
:urlpatterns += [ url(r'^captcha/', include('captcha.urls')), ]
安装后,添加forms.py中forms对应的字段,参考官网:
from django import forms
from captcha.fields import CaptchaField
class LoginForm(forms.Form):
# 定义这个表单类中有哪些字段需要验证, 和model中的定义相似
username = forms.CharField(required=True, min_length=2)
password = forms.CharField(required=True, min_length=3)
# 字段的名称必须和html中字段的name一致
class DynamicLoginForm(forms.Form):
captcha = CaptchaField()
在views.py中添加对应的调用:
# 定义用户登录功能的类
class LoginView(View):
# 需要定义get 和post方法
def get(self, request, *args, **kwargs):
if request.user.is_authenticated:
return HttpResponseRedirect(reverse('index'))
login_form = DynamicLoginForm()
return render(request, 'login.html', {'login_form': login_form})
ulrs.py中:
url(r'^captcha/', include('captcha.urls')), #添加对应的url
html中:
<div class="form-group marb20 blur" id="jsRefreshCode">
{{login_form.captcha}}
</div>