为了账号安全,请及时绑定邮箱和手机立即绑定

FastAPI 和 GINO 无法从数据库中的表中获取所有行

FastAPI 和 GINO 无法从数据库中的表中获取所有行

慕容708150 2023-05-09 15:17:41
我陷入了 GINO 的问题。我可以从名为模板的表中获取一行,因此在另一条路线中我想从表中获取所有行。在这里,您可以看到我对从 db ant 获取一条记录的看法,它工作得很好。@router.get("/templates/{uid}")async def get_template(uid: str):    temp = await Template.get_or_404(uid)    return temp.to_dict()接下来你可以看看我的视图将记录添加到数据库,它也可以正常工作:@router.post("/templates")async def add_template(template: TemplateModel):    rv = await Template.create(name=template.name, text=template.text)    return rv.to_dict()所以,这个观点的主要原因是,它不起作用:@router.get("/templates/all")async def get_all_templates():    temp = await Template.all()    return temp.to_dict()在下面查看我的模板模型:class Template(db.Model):    __tablename__ = "templates"    UUID = db.Column(        str(UUID(as_uuid=True)),        db.String,        primary_key=True,        default=str(uuid.uuid4()),        unique=True,        nullable=False,    )    name = db.Column("name", db.String, nullable=False)    text = db.Column("text", db.String, nullable=False)    created_at = db.Column("created_at", db.DateTime, nullable=False,                           server_default=db.func.now())最后是我的 db GINO 引擎:from gino_starlette import Ginofrom .. import configdb = Gino(    dsn=config.DB_DSN,    pool_min_size=config.DB_POOL_MIN_SIZE,    pool_max_size=config.DB_POOL_MAX_SIZE,    echo=config.DB_ECHO,)错误日志:2020-08-08 12:07:57,698 INFO gino.engine._SAEngine SELECT templates."UUID", templates.name, templates.text, templates.created_atFROM templatesWHERE templates."UUID" = $12020-08-08 12:07:57,699 INFO gino.engine._SAEngine ('all',)INFO: 172.23.0.1:40676 - "GET /templates/all HTTP/1.1" 404 Not Found请告诉我出了什么问题,我花了很多时间来解决这个问题。欢迎回答,谢谢。
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

但是我不知道。并且 GINO 文档没有说明使用 GINO 模型(如从 db 获取所有记录)的 db 操作应该在 POST 中请求。所以正确的答案是将 router.get 替换为 router.post:


@router.post("/templates/all")

async def get_all_templates():

    temp = await Template.all()

    return temp.to_dict()


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信