验证码
验证码主要的作用是为了验证作用,现在验证码也有很多类型,比如滑动、点击、倒立点击特别多,这些都是为了加强网站的安全。
安装:
pip install django-simple-captcha
配置:
INSTALLED_APPS = [
'captcha',
]
路由:
path('captcha/', include('captcha.urls')),
创建表单
在应用下创建forms.py文件,内容为
from django import forms
from django.core.exceptions import ValidationError
from captcha.fields import CaptchaField #按得拓展属性
from django.forms import widgets
import re
def mobile_validate(value):
mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$')
if not mobile_re.match(value):
raise ValidationError('手机号码格式错误')
class ContactForm(forms.Form):
name = forms.CharField(required=True, error_messages={'required': '姓名不能为空.'},
widget=widgets.Input(attrs={"class": 'contactFormText', 'placeholder': '请填写姓名'}))
phone = forms.CharField(validators=[mobile_validate],
widget=widgets.TextInput(attrs={"class": 'contactFormText', 'placeholder': '请填写手机号码'}))
captcha = CaptchaField(required=True, error_messages={'invalid': '验证码错误'})
迁移文件
模板 视图python manage.py migrate
刷新验证码
类选择器.captcha,
点击click,
回调函数function,
发起请求getJSON
请求地址/captcha/refresh/
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
$('.captcha').click(function () {
$.getJSON("/captcha/refresh/", function (result) {
$('.captcha').attr('src', result['image_url']);
$('#id_captcha_0').val(result['key'])
});
});
</script>
网友评论