2016-06-09 103 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

相關問題