Web 为什么我必须在Flask create_应用程序中返回应用程序?

Web 为什么我必须在Flask create_应用程序中返回应用程序?,web,flask,Web,Flask,嗨,我正在通过阅读格林伯格的《Flask Web开发》学习Flask。 上面的代码是从那本书中抄来的 谁能解释一下为什么我最后需要“返回应用程序”吗?据我所知,您还没有复制完整的代码 您可能错过了以下几行或类似的内容: from flask import Flask, render_template from flask.ext.bootstrap import Bootstrap from flask.ext.mail import Mail from flask.ext.moment imp

嗨,我正在通过阅读格林伯格的《Flask Web开发》学习Flask。 上面的代码是从那本书中抄来的


谁能解释一下为什么我最后需要“返回应用程序”吗?

据我所知,您还没有复制完整的代码

您可能错过了以下几行或类似的内容:

from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.mail import Mail
from flask.ext.moment import Moment
from flask.ext.sqlalchemy import SQLAlchemy
from config import config

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
正如@davidism所解释的,作者返回应用程序的原因是我们使用应用程序实例来启动Flask应用程序。就这么简单


我希望这能回答您的问题。

您是否检查并查看是否遗漏了一些行?我很高兴它有帮助。顺便问一下,你能告诉我为什么像mail.init_app(app)这样的变量即使没有返回也会存在吗?或者我需要搜索什么关键字来学习这部分知识?有关应用程序工厂的更多信息,请参见此处是的,这只是作者用来描述如何使用工厂函数创建应用程序的整个代码的一部分。我一直坚持这一部分,还没有阅读其余的代码,实际上,还有另一部分“蓝图”我需要通过。是的。你肯定需要烧瓶蓝图。如果您是flask的新手,本教程非常有用
if __name__ == '__main__':
    app = create_app('Example')
    app.run()