ram*_*han 1 python pydantic fastapi
我正在使用 pydantic 来验证我需要验证电子邮件的响应。我正在这样尝试。
class CheckLoginRequest(BaseModel):
user_email: str = Field(min_length=5, default="username")
user_number: str = Field(min_length=5, default="+923323789263")
@field_validator("user_email")
def validate_email(self, value):
try:
validate_email(value)
except EmailNotValidError:
raise ValueError("Invalid email format")
return value
Run Code Online (Sandbox Code Playgroud)
但它显示错误pydantic.errors.PydanticUserError: @field_validator cannot be applied to instance methods
我尝试使用@validator它,但它已被弃用。
最现代和记录的方式,afaict,应该使用EmailStr记录的类型,例如此处。
from pydantic import EmailStr, Field
class UserBaseSchema(BaseModel):
"""User base schema."""
email: EmailStr | None = Field(default=None)
Run Code Online (Sandbox Code Playgroud)
它还与其他 FastApi 功能(例如文档和生态系统中的其他工具)完美集成。
注意:它需要安装电子邮件验证器。