Discuss / Python / 能不能改写app.py中的init(loop)

能不能改写app.py中的init(loop)

Topic source

原因:现在aiohttp.Application参数loop被Deprecated,直接使用web.run_app(app),内部get_event_loop()创建了一个loop。

想法:如何改写app.py中的init(),这样可以改为使用web run_app()?

不知道有谁这样做过吗

async def init():    host = configs.db.host    port = configs.db.port    user = configs.db.user    pw = configs.db.password    db = configs.db.db    await orm.create_pool(host=host, port=port, user=user, password=pw, db=db)    app = web.Application(middlewares=[logger_factory, response_factory])    init_jinja2(app, filters=dict(datetime=datetime_filter))    add_routes(app, "handlers")    add_static(app)    return appif __name__ == "__main__":    logging.info("Server started at 127.0.0.1:9000")    web.run_app(init(), host="127.0.0.1", port=9000)

async def init():

    host = configs.db.host

    port = configs.db.port

    user = configs.db.user

    pw = configs.db.password

    db = configs.db.db

    await orm.create_pool(host=host, port=port, user=user, password=pw, db=db)

    app = web.Application(middlewares=[logger_factory, response_factory])

    init_jinja2(app, filters=dict(datetime=datetime_filter))

    add_routes(app, "handlers")

    add_static(app)

    return app

if __name__ == "__main__":

    logging.info("Server started at 127.0.0.1:9000")

    web.run_app(init(), host="127.0.0.1", port=9000)


  • 1

Reply