在 Flasl Web 开发一书中,将程序结构化,将配置分层,并将程序实例放在工厂函数中,代码如下:
class Config:
@
staticmethod def init_app(app):
pass
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
bootstrap.init_app(app)
mail.init_app(app)
moment.init_app(app)
db.init_app(app)
不明白的是: init_app 实在 config 类中定义的, config[config_name]调用 init_app(app)就可以理解,但扩展对象怎么能够调用呢?在 cofig 类(基类和子类)中没有看到和扩展对象有关的的定义啊? config[config_name]调用 init_app(app)就可以理解
ps :上述代码忽略了一些导入代码和 boostrap = Bootstrap()一类的代码
非常感谢哪位能够指导一下!!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/238972
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.