【问题标题】:Installing flask extension: ext = Ext(app) versus Ext(app)安装烧瓶扩展:ext = Ext(app) 与 Ext(app)
【发布时间】:2016-09-11 02:44:21
【问题描述】:

我正在按照教程学习烧瓶 Web 开发。目前,我的应用程序的前几行是:

from flask import Flask, render_template
from flask_bootstrap import Bootstrap

app = Flask(__name__)

bootstrap = Bootstrap(app)

但是,当我将 bootstrap = Bootstrap(app) 更改为 Bootstrap(app) 时,没有任何问题。那么将Bootstrap 实例存储在变量中的目的是什么,而其余代码中没有用到呢?

【问题讨论】:

标签: python flask flask-extensions


【解决方案1】:

使用您当前的代码,确实不需要将实例保存到变量中,

但在实践中,您将创建 Bootstrap 实例而不传递 app 实例,然后在某些初始化方法上,您将调用 Bootstrap 实例的 init_app 方法以使用 app 对其进行初始化,如下所示:

bootstrap = Bootstrap()

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    bootstrap.init_app(app)

    return app 

这还将包括其他工具的所有其他实例,例如 Flask-SQLALchemy、Moment、Mail...等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 2020-08-07
    • 2023-03-26
    • 2018-10-25
    • 2018-10-25
    • 1970-01-01
    • 2015-10-26
    • 2020-02-05
    相关资源
    最近更新 更多