| 知乎专栏 |
直接打印返回结果
<models.model.Picture object at 0x1063e9910>
倒入依赖,然后使用 jsonable_encoder 编码
from fastapi.responses import JSONResponse from fastapi.encoders import jsonable_encoder
@router.get(
"/{android_id}/open/{id}",
summary="打开绘本",
description="开始阅读绘本作品",
)
async def open(id: int):
session = database.session()
book = {}
try:
from sqlalchemy.orm import load_only
book["book"] = session.query(PictureBook).filter(PictureBook.id == id).first()
book["story"] = (
session.query(Picture)
.join(PictureBookHasPicture, Picture.id == PictureBookHasPicture.picture_id)
.filter(PictureBookHasPicture.picture_book_id == id)
.options(load_only(Picture.image, Picture.story))
.all()
)
if book["book"]:
response = Response(True, "打开绘本", jsonable_encoder(book))
else:
response = Response(False, "打开绘本没有数据", None)
except Exception as e:
response = Response(False, e, None)
logger.error(response)
finally:
session.close()
logger.info(response)
return JSONResponse(content=response)