init_app静态方法是flask特有给config类的吗?,init_appflask,rt,今天看《flask
init_app静态方法是flask特有给config类的吗?,init_appflask,rt,今天看《flask
rt,今天看《flask Web开发》一书中,有示例代码:
创建一个文件Config.py保存配置:
python
...class Config: SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string' SQLALCHEMY_COMMIT_ON_TEARDOWN = True #...各种其他配置变量在此省略 @staticmethod def init_app(app): passclass DevelopmentConfig(Config): #该环境下特有配置,省略class TestingConfig(Config): #该环境下特有配置,省略class ProductionConfig(Config): #该环境下特有配置,省略config = { 'development': DevelopmentConfig, 'testing': TestingConfig, 'production': ProductionConfig, 'default': DevelopmentConfig}
总体意思是创建基类Config来保存通用配置 其他的各环境使用不同的配置 再用一个字典提供选择
但是Config类最后定义一个静态方法init_app,并且函数体为空:
python@staticmethoddef init_app(app): pass
之后在另一个文件中的程序工厂函数:
python...bootstrap = Bootstrap()mail = Mail()moment = Moment()db = SQLAlchemy()def create_app(config_name): app = Flask(__name__) #将指定的配置通过from_object()方法导入app.config字典配置对象 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
其中使用init_app的部分我就看不懂了,具体达到的效果是将之前在config.py中定义的配置给到这四个实例,但是init_app函数的函数体不是空的么?为什么可以达到效果?还是说init_app是flask特有的用来初始化配置的方法?
编橙之家文章,
相关内容
- MySQL-python的DictCursor没有用?,,在设置cursor的时候
- python线程问题,python线程,代码:from thre
- py2exe 生成的代码执行结果与原python代码不同,py2exepy
- django根据session对不同登录用户实时推送特定的信息如何
- python操作html去除某一对标签。,pythonhtml去除某一,有一
- 学习tornado遇到一段代码 大神们帮我解释下,tornado大神
- python 字典格式化字符串的问题,python字符串,>>&g
- 用heroku在国内部署app?,heroku国内app,我在用python做一个
- Vim ctags在同一文件中一个函数的两次定义只会跳转到一
- PySide 中是否必须在同一个函数中创建 QWidget 与 QApplic
评论关闭