2013-01-23 66 views
20

我開始一個flask項目,並在我的代碼我有瓶混淆應用

from flask import Flask, render_template, abort 
app = Flask(__name__) 

現在究竟是什麼app

我下面this guide,我感到特別困惑的結構,因爲他已經選擇了有目錄中名爲app/是他app/__init__.py

from flask import Flask 
app = Flask(__name__) 
from app import views 

,並在他的app/views.py

from app import app 

這是什麼東西與所有這些app的?!

+0

這些只是名稱和類型的對象應該是清楚的,你可以重新狀態/澄清你的問題? – XORcist

+2

什麼是從'從應用程序導入應用程序'導入? – kasperhj

回答

21

我認爲主要的困惑是在該行:

from app import app 

您有一個名爲「應用程序」 Python包(帶__init__.py文件的文件夾)。從這個文件夾,你現在導入您在__init__.py文件下面定義的變量「應用程序」:

app = Flask(__name__) 

從應用程序文件夾重命名說「MyProject的」。然後,你會打電話給

from myproject import app 

此外,您將導入的意見,

from myproject import views 
3

由於名稱選擇不當,確實有點令人困惑。

  • app = Flask(__name__):這裏appWSGI應用程序,它實現了相應的接口,同時還支持任何燒瓶帶有給我們提供最重要的是。
  • from app import app:完全從app包中導入app對象。
  • from app import view:爲了什麼,他在那裏輸入views,有點神祕,我想他要確保視圖綁定被執行。 (我寧願在run.py中那樣做)。無論如何,這是兩個模塊之間的一種導入循環,至少也是令人困惑的。