首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gino引擎未初始化。

Gino引擎未初始化。
EN

Stack Overflow用户
提问于 2019-06-18 21:46:52
回答 1查看 1.6K关注 0票数 2

我正在尝试使用aiohttp和Gino创建一个简单的Restful。

在我的端点类中,我得到了以下内容:

代码语言:javascript
复制
class ListEndpoint(Endpoint):
def __init__(self, model):
    super().__init__()
    self.model = model

async def get(self) -> Response:
    async with db.with_bind(DB_ADDRESS):
        obj_list = await self.model.query.gino.all()

    if not obj_list:
        return Response(
            status=404,
            body=json.dumps({'Not found': 404}),
            content_type='application/json'
        )

    data = await ModelSerializer(obj_list).to_json()

    return Response(
        status=200, body=data, content_type='application/json'
    )

这是我唯一叫吉诺的地方。这是我的main.py:

代码语言:javascript
复制
from aiohttp.web import Application, run_app

from models import Country
from resource import GenericResource


app = Application()
countries = GenericResource('countries', Country)
countries.register(app.router)


if __name__ == '__main__':
    run_app(app)

当我使用GET请求调用路由时,会得到以下错误:

Gino引擎未初始化。

它在这一点上失败了:

代码语言:javascript
复制
async with db.with_bind(DB_ADDRESS):
    obj_list = await self.model.query.gino.all()

这是个不好的地方吗?或者,正如我可以想到这个问题的原因,这段代码会转到事件循环中,并且在设置obj_list时没有时间绑定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 12:19:56

问题是,我在不同的文件中创建了不同的Gino类实例。这是错误的。作为解决方案,您应该只创建一个Gino实例,并在不同的文件之间共享它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56657479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档