欢迎访问宙启技术站
智能推送

Python中Field()函数的输入合法性验证示例

发布时间:2024-01-02 06:27:30

在Python中,Field()函数是用于验证输入合法性的函数之一,它用于定义和验证输入字段的规则。以下是Field()函数的输入合法性验证示例:

from pydantic import BaseModel, Field

class User(BaseModel):
    name: str = Field(..., min_length=4, max_length=20, description="用户名,长度为4到20个字符")
    email: str = Field(..., regex="^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$", description="邮箱地址")
    age: int = Field(..., gt=0, lt=100, description="年龄,取值范围为1到99")

user = User(name="John", email="johnexample.com", age=25)
print(user.dict())

上述代码中,我们定义了一个User类,并使用Field()函数为每个字段指定了验证规则。具体来说,我们对name字段设置了最小长度和最大长度,对email字段设置了正则表达式验证邮箱格式,对age字段设置了最小值和最大值。最后,我们实例化一个User对象,传入了一个不合法的name值和email值。

执行上述代码后,会抛出以下错误:

...
pydantic.error_wrappers.ValidationError: 2 validation errors for User
name
  length less than minimum allowed: 4 (type=value_error.any_str.min_length; limit_value=4)
email
  string does not match regex "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$" (type=value_error.str.regex; pattern=^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

可以看到,通过Field()函数对输入字段进行了合法性验证,检测到name字段的长度小于最小允许长度4,并检测到email字段不符合预期的邮箱格式。这些错误信息帮助我们快速定位输入错误。

此外,Field()函数还支持许多其他参数,例如alias用于指定字段的别名、default用于设置字段的默认值、description用于设置字段的描述等。这些参数可以在Field()函数中根据需要进行使用。

总结来说,Field()函数是Python中用于验证输入合法性的函数之一,提供了许多验证选项,如最小长度、最大长度、正则表达式、最小值、最大值等。通过Field()函数,我们可以方便地验证输入数据的合法性,并提供详细的错误信息和描述。这样可以提高代码的可靠性和可维护性。