1、下载captcha安装包:
pip install django-simple-captcha
pip3 install pillow -i Simple Index
2、在settings的INSTALLED_APPS添加:
'captcha',
3、在控制台执行:
生成迁移文件:python3 manage.py makemigrations
迁移文件生成表:python3 manage.py migrate
4、在主路由里增加下面代码:
path('captcha/', include('captcha.urls')),
5、在自己需要的App里的views.py里增加如下代码:
class LoginForm(forms.Form):
'''
属性:
CharField:
max_length:该字段值的最大长度;
min-length:该字段值的最小长度;
required:这个字段是否为必须的,默认为必须的;
error_messages:某个条件验证失败时,给出的错误信息
EmailField:
error_messages的键:required、invaild
FloatField:
max_value:指定最大值
min_value:指定最小值
IntegerField:
max_value:指定最大值
min_value:指定最小值
error_messages的键:required、invalid、max_value、min_value
DateField
接收年月日
URLField
error_messages的键:required、invalid
常用验证器:
MaxValueValidator:验证最大值
MinValueValidator:验证最小值
MinLengthValidator:验证最小长度
MaxLengthValidator:验证最大长度
EmailValidator:验证是否为邮箱格式
URLValidator:验证是否为URL格式
RegexValidator:验证是否匹配所指定的正则表达式,用来实现更复杂的验证
举个例子:
URLField = forms.CharFiedld(validators=[validators.URLValidator(message="请输入格式正确的地址")]
'''
s_name = forms.CharField(
label="用户账号",
widget=forms.TextInput(attrs={"class":"form-control", "placeholder":"请输入用户账号"}),
required=True,
)
s_pass = forms.CharField(
label="用户密码",
widget=forms.PasswordInput(attrs={"class":"form-control", "placeholder":"请输入用户密码"}),
required=True,
)
captcha = CaptchaField(error_messages={"invalid": "验证码错误,请重新填写"})
6、在html文件里增加以下代码
<div class="mb-3 col-sm-7">
<label for="checknumber" class="form-label"><span class="bi bi-patch-check"></span> 验证码</label>
{{ form.captcha }}
<span style="color:red;">{{ form.captcha.errors }}</span>
</div>
<script>
$('.captcha').click(function () {
$.getJSON("/captcha/refresh/", function (result) {
$('.captcha').attr('src', result['image_url']);
$('#id_captcha_0').val(result['key'])
});
});
</script>