Python flask工厂函数不是很理解请指导,pythonflask,flask web,说到
Python flask工厂函数不是很理解请指导,pythonflask,flask web,说到
flask web,说到了工厂函数,不是很理解,请大神来指教一下,上源码。
app/init.py:程序包的构造文件
from flask import Flask, render_templatefrom flask.ext.bootstrap import Bootstrapfrom flask.ext.mail import Mailfrom flask.ext.moment import Momentfrom flask.ext.sqlalchemy import SQLAlchemyfrom config import configbootstrap = 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
例子中工厂函数 create_app 的真正目的其实只有一个————根据应用的不同使用场景来使用不同的配置,核心是为了实现:
app.config.from_object(config[config_name])
因此,要把应用的实例创建的过程交给工厂函数,通过工厂函数选择你所要使用的配置,来创建适用于不同环境下的应用
补充wslshanlin的回答。
如果将
create_app
中的代码挪到全局命名空间(也就是manager.py)中,会出现多个app的config发生冲突等莫名其妙的问题。
这么做的目的在于:
大概意思就是,方便批量生产 app。你用这个 create_app 函数方法可以创建万千上万个 app。
编橙之家文章,
相关内容
- 字典内in现has_key()使用哪个最适合,inhas_key,这两个都是
- Django下无法调用sav()到数据库求指导,djangosav,Django.co
- Python变量名与C语言指针类似是真的吗?好处是什么,p
- 在模板中直接引用配置文件参数的Flask应用怎么做?,配
- Python合并字典操作时同key的value应该如何相加,pythonv
- 这段Python源码中函数作用是什么,python源码函数作用
- 用python怎么做能让两个列表每一项对应用+号合并,py
- Flask获取Post参数返回400 Bad Request求解,flaskrequest,我想用
- Python UTC时区时间转换,pythonutc时区转换,保存时间字段
- 怎样将Python2源码无损的转换为python3代码,python2python
评论关闭