我陷入了 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()
添加回答
舉報
0/150
提交
取消