flask 中xx.init_app(app)方法
阿新 • • 發佈:2018-01-13
oot lan line con 指定 ask ext 套路 name
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)
http://flask.pocoo.org/docs/0.12/patterns/appfactories/
flask 文檔關於工廠模式裏面提到了上面的這種套路。
It ’ s preferable to create your extensions and app factories so that the extension object does not initially get bound to the application.
Using Flask-SQLAlchemy, as an example, you should not do something along those lines:
def create_app(config_filename):
app = Flask(__name__)
app.config.from_pyfile(config_filename)
db = SQLAlchemy(app)
But, rather, in model.py (or equivalent):
db = SQLAlchemy()
and in your application.py (or equivalent):
def create_app(config_filename):
app = Flask(__name__)
app.config.from_pyfile(config_filename)
from yourapplication.model import db
db.init_app(app)
flask 中xx.init_app(app)方法