欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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='请输入正确格式的手机号码!')])
相关标签: DJANGO