我想设置默认电子邮件以防未提供电子邮件,即:
name = a
last_name = b
email = None
Run Code Online (Sandbox Code Playgroud)
电子邮件将变为“a_b@email.com”
我尝试了类似的方法,但显然不能用作名称,last_name 未在函数中定义。
class User(BaseModel):
name: Optional[str] = ''
last_name: Optional[str] = ''
email: EmailStr
@validator('email')
def set_email(cls, email):
if not email:
return name + last_name + '@email.com'
else:
return email
Run Code Online (Sandbox Code Playgroud)
更新-仍然不起作用,我尝试过:
@root_validator(pre=True)
def email_set_config(cls, values):
email, name ,last_name = values.get('email'), values.get('name') , values.get('last_name')
if email is None :
email= name + '_' + name + '@' + last_name
return values
Run Code Online (Sandbox Code Playgroud)
解决方案:
添加到类:
- 更新
class Config: …Run Code Online (Sandbox Code Playgroud) 我有变量保存sql的时间格式,并且需要返回它,但是当我将其打印回来时它被反斜杠转义了
参见示例:
@app.get("/")
def test_string():
sql_date ='YYYY-MM-DD"HH24:MI:SS"Z"'
print(sql_date)
#get YYYY-MM-DD"HH24:MI:SS"Z"
return sql_date
#return "YYYY-MM-DD\"HH24:MI:SS\"Z\""
Run Code Online (Sandbox Code Playgroud)
如何在没有转义反斜杠的情况下从 fastapi 获取返回值?