《flask web 开发》使用程序工厂函数没有看懂。

2016-09-07 16:14:25 +08:00
 linuxs

bootstrap = Bootstrap()

mail = Mail()

moment = Moment()

db = SQLAlchemy()

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)

return app

~

这段没看懂,希望大家帮忙解释一下。谢谢

4102 次点击
所在节点    Flask
3 条回复
linuxs
2016-09-07 16:34:18 +08:00
这里 create_app 函数里的 config_name 这个参数是不是函数上 mail , db , moent 等这些实例呢?

app.config.from_object(config[config_name]) 这段是将配置的程序导入到程序那么 config[config_name].init_app(app)这段是做什么的呢?
liverpoolpjy
2016-09-08 09:41:45 +08:00
在你的 config.py 里有一个字典:
config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'production': ProductionConfig,

'default': DevelopmentConfig
}
config_name 是选择用哪里个配置

config[config_name].init_app(app) 也是在 config.py 里面定义的。
@staticmethod
def init_app(app):
pass
那个教程里好像是个空函数
keelii
2016-09-08 10:05:03 +08:00
其实就是做一些关联动作,使得 插件和主程序 之间共享一些数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304591

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX