1. Sanic 应用
(1) sanic 实例
app = Sanic("")
实例化sanic
(2) 应用上下文
代码不同部分共享数据对象时,sanic 21.3 版本开始引入了应用上下文,之前版本需要将实例属性附加到应用程序上。
app= Sanic("test")
app.db = Database()
in v21.3:
app= Sanic("test")
app.ctx.db = Database()
(3) app 注册表
当实例化一个sanic对象后,可以通过get_app方法获取改实例对象, 在不同代码块之间访问时非常方便。
#file1
app = Sanic("this is instance 1")
#file2
app = Sanic.get_app("this is instance 1")
#file3
app = Sanic.get_app("this is instace 1 ", "non-existing", force_create=True)
#如果获取的Sanic对象不存在,则创建一个。
还有一个情况,如果只有一个实例,那么get_app()方法不传入任何参数时,返回此唯一实例对象。(这个应该不常用,或者要确保只有一个sanic 实例情况下使用。)
(4) 配置
Sanic 可以将配置保存在sanic对象的config属性中。并可以使用属性操作或字典操作来修改配置。
app = Sanic("config")
app.config.DB_NAME = "appdb"
app.config['DB_USER'] = 'appuser'
db_settings = {
'DB_HOST': 'localhost',
' DB_NAME': 'appdb'
}
app.config.update(db_settings)
建议配置名都用大写