2016-06-09 64 views
-1
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 

嗨,我正在通过阅读'Grinberg M'的Flask Web Development来学习Flask。 上面的代码是从该书中复制的。为什么我必须在Flask create_app中返回应用程序?

任何人都可以请解释为什么我需要“返回应用程序”到底?

+1

以便返回应用程序。 – davidism

+0

T是的我知道应用程序返回..但我不知道为什么应用程序需要返回。 – leadh2o

+1

这样它就可以使用。 – davidism

回答

1

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

你可能已经错过了这些线或类似的东西:

if __name__ == '__main__': 
    app = create_app('Example') 
    app.run() 

原因笔者返回应用,如@davidism解释,是我们使用的应用程序实例,开始我们的瓶的应用。就那么简单!

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

+0

谢谢,它确实有帮助。 – leadh2o

+0

你有没有检查并看看你是否错过了一些行?我很高兴它有帮助。 –

+0

顺便说一下,你会告诉我为什么像mail.init_app(app)这样的变量即使没有被返回也会退出?或者什么是我需要搜索学习这部分知识的关键字? – leadh2o

相关问题