由于make_handler()Deprecated since version 3.2,所以用web.run_app()代替loop.create_server()。至于数据库连接池的创建,可单独定义协程init_db(),然后绑定到app.on_startup,以便在 app 启动之后,数据库连接池随之创建。
# app.py
...
async def init_db(app):
# If on Linux, use another user instead of 'root'
await orm.create_pool(
host=configs.db.host,
port=configs.db.port,
user=configs.db.user,
password=configs.db.password,
db=configs.db.database
)
app = web.Application(middlewares=[
logger_factory,
response_factory
])
init_jinja2(app, filters=dict(datatime=datetime_filter))
add_routes(app, 'handlers')
add_static(app)
app.on_startup.append(init_db)
web.run_app(app, host='localhost', port=9000)
往数据库插入数据,由于id、created_at字段是系统自动生成,直接在数据库中用命令行操作会报错,因此还是利用 Day 4 创建的 test.py 文件来添加数据更方便。
xian_wen
由于
make_handler()
Deprecated since version 3.2,所以用web.run_app()
代替loop.create_server()
。至于数据库连接池的创建,可单独定义协程init_db()
,然后绑定到app.on_startup
,以便在 app 启动之后,数据库连接池随之创建。往数据库插入数据,由于
id
、created_at
字段是系统自动生成,直接在数据库中用命令行操作会报错,因此还是利用 Day 4 创建的 test.py 文件来添加数据更方便。测试结果: