2018.10.27PYTHON_DJANpython装饰器详解GO_CLASS118~119
程序员文章站
2022-04-26 17:38:36
...
#CLASS118
用表单验证数据
常用的Field:
使用Field可以是对数据验证的第一步。你期望这个提交上来的数据是什么类型,那么就使用什么类型的Field。
CharField:
用来接收文本。
参数:
- max_length:这个字段值的最大长度。
- min_length:这个字段值的最小长度。
- required:这个字段是否是必须的。默认是必须的。
- error_messages:在某个条件验证失败的时候,给出错误信息。
EmailField:
用来接收邮件,会自动验证邮件是否合法。
错误信息的key:required、invalid。
from.py
class MyForm(BaseForm):
email = forms.EmailField(error_messages={"invalid":"请输入正确的邮箱!"})
price = forms.FloatField(error_messages={"invalid":"请输入浮点类型!"})
personal_website = forms.URLField(error_messages={"invalid":"请输入正确格式的个人网站!",'required':"请输入个人网站!"})
email = forms.CharField(validators=[validators.EmailValidator(message='请输入正确格式的邮箱!')])
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
{# <input type="text" name="email">#}
{# <input type="text" name="price">#}
{# <input type="text" name="personal_website">#}
<input type="text" name="telephone">
<input type="submit" value="提交">
</form>
</body>
</html>
FloatField:
用来接收浮点类型,并且如果验证通过后,会将这个字段的值转换为浮点类型。
参数:
- max_value:最大的值。
- min_value:最小的值。
错误信息的key:required、invalid、max_value、min_value。
IntegerField:
用来接收整形,并且验证通过后,会将这个字段的值转换为整形。
参数:
- max_value:最大的值。
- min_value:最小的值。
错误信息的key:required、invalid、max_value、min_value。
案例:
class MyForm(BaseForm):
telephone = forms.CharField(validators=[validators.RegexValidator(r'1[345678]\d{9}',message='请输入正确格式的手机号码!')])
URLField:
用来接收url格式的字符串。
错误信息的key:required、invalid。
案例:
class MyForm(BaseForm):
personal_website = forms.URLField(error_messages={"invalid":"请输入正确格式的个人网站!",'required':"请输入个人网站!"})
CLASS 119
常用验证器:
在验证某个字段的时候,可以传递一个validators参数用来指定验证器,进一步对数据进行过滤。验证器有很多,但是很多验证器我们其实已经通过这个Field或者一些参数就可以指定了。比如EmailValidator,我们可以通过EmailField来指定,比如MaxValueValidator,我们可以通过max_value参数来指定。以下是一些常用的验证器:
MaxValueValidator:验证最大值。
MinValueValidator:验证最小值。
MinLengthValidator:验证最小长度。
MaxLengthValidator:验证最大长度。
EmailValidator:验证是否是邮箱格式。
URLValidator:验证是否是URL格式。
RegexValidator:如果还需要更加复杂的验证,那么我们可以通过正则表达式的验证器:RegexValidator。比如现在要验证手机号码是否合格,那么我们可以通过以下代码实现:
class MyForm(forms.Form):
telephone = forms.CharField(validators=[validators.RegexValidator("1[345678]\d{9}",message='请输入正确格式的手机号码!')])