知乎专栏 |
直接打印返回结果
<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)