Двигатель Джино не инициализирован - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь создать простой API Restful, используя aiohttp и Gino.

Внутри моего класса конечной точки я получил следующее:

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:

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 не инициализирован.

И это терпит неудачу:

async with db.with_bind(DB_ADDRESS):
    obj_list = await self.model.query.gino.all()

Это плохое место для привязки? Или, как я могу думать о причинах этой проблемы, заключается в том, что этот код переходит в цикл обработки событий и не имеет времени для привязки, когда установлен obj_list.

...