在 fastapi 中由 pydantic 序列化
Serialization by pydantic in fastapi
我会单独问这个问题,因为它是这个问题的延续,但内容不同。
我想序列化一个连接,然后用 pydantic 序列化它,但它不起作用。
如果可能的话,我想 return 它就像一个单独的对象一样。
{
id: 1,
parent_column: test1,
child_column: test2
}
您可以使用所需信息创建一个 Pydantic 模型,因此该模型将负责序列化为 JSON 格式。
from pydantic import BaseModel
class MyResponse(BaseModel):
id: int
parent: str
child: str
您只需通过以请求的格式向模型提供数据来创建响应。
data_json = MyResponse(id= my_data.id, parent=my_data.parent, child=my_data.child)
下面给出了一个带有 fastAPI 端点的示例,该端点将采用 ID 来检索特定数据,并 return 具有特定模板的 JSON 响应。
from pydantic import BaseModel
from fastapi import status
class MyResponse(BaseModel):
id: int
parent: str
child: str
@ router.get('/data',
status_code=status.HTTP_200_OK,
response_model=MyResponse)
def get_data(parent_id:int):
try:
data = get_data(parent_id)
except Exception:
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,detail="Server Error")
return MyResponse(id=data.id, parent=data.parent, child=data.child)
之后,可以通过 Pydantic class 的 orm_mode
使用 sqlalchemy link Pydantic 模型。更多信息在这里:https://fastapi.tiangolo.com/tutorial/sql-databases/#use-pydantics-orm_mode
我会单独问这个问题,因为它是这个问题的延续,但内容不同。
我想序列化一个连接,然后用 pydantic 序列化它,但它不起作用。
如果可能的话,我想 return 它就像一个单独的对象一样。
{
id: 1,
parent_column: test1,
child_column: test2
}
您可以使用所需信息创建一个 Pydantic 模型,因此该模型将负责序列化为 JSON 格式。
from pydantic import BaseModel
class MyResponse(BaseModel):
id: int
parent: str
child: str
您只需通过以请求的格式向模型提供数据来创建响应。
data_json = MyResponse(id= my_data.id, parent=my_data.parent, child=my_data.child)
下面给出了一个带有 fastAPI 端点的示例,该端点将采用 ID 来检索特定数据,并 return 具有特定模板的 JSON 响应。
from pydantic import BaseModel
from fastapi import status
class MyResponse(BaseModel):
id: int
parent: str
child: str
@ router.get('/data',
status_code=status.HTTP_200_OK,
response_model=MyResponse)
def get_data(parent_id:int):
try:
data = get_data(parent_id)
except Exception:
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,detail="Server Error")
return MyResponse(id=data.id, parent=data.parent, child=data.child)
之后,可以通过 Pydantic class 的 orm_mode
使用 sqlalchemy link Pydantic 模型。更多信息在这里:https://fastapi.tiangolo.com/tutorial/sql-databases/#use-pydantics-orm_mode