dat*_*ews 7 python python-3.x pydantic fastapi
我正在尝试删除名字和姓氏字段以及电子邮件字段上的空格。我无法让它工作。
from pydantic import BaseModel, UUID4, SecretStr, EmailStr, constr
class UserCreate(BaseModel):
email: EmailStr[constr(strip_whitespace=True)]
password: SecretStr[constr(strip_whitespace=True)]
first_name: str[constr(strip_whitespace=True)]
last_name: str[constr(strip_whitespace=True)]
Run Code Online (Sandbox Code Playgroud)
Yaa*_*ler 10
您可以在模型或基类中添加自定义配置选项:
class UserCreate(BaseModel):
email: EmailStr
password: SecretStr
first_name: str
last_name: str
class Config:
"""Extra configuration options"""
anystr_strip_whitespace = True # remove trailing whitespace
Run Code Online (Sandbox Code Playgroud)
它看起来像是EmailStr
为您去除空格,您可以直接使用constr()
with而不是:strip_whitespace=True
str
from pydantic import BaseModel, SecretStr, EmailStr, constr
class UserCreate(BaseModel):
email: EmailStr
password: SecretStr
first_name: constr(strip_whitespace=True)
last_name: constr(strip_whitespace=True)
user = UserCreate(
email=" email.address@example.com ",
password=" some password ",
first_name=" First ",
last_name=" Last ",
)
print(user)
# email='email.address@example.com' password=SecretStr('**********') first_name='First' last_name='Last'
#
# Leading and trailing whitespaces removed in email, first_name, last_name.
print(f"'{user.password.get_secret_value()}'")
#' some password '
#
# However, not in password.
Run Code Online (Sandbox Code Playgroud)