天天看點

Python開發架構Flask1. Flask介紹2. Flask安裝3. Flask入門4. 總結

Python開發架構Flask1. Flask介紹2. Flask安裝3. Flask入門4. 總結

關于flask值得知道的一些事:

flask由armin ronacher于2010年建立。

flask的靈感來自sinatra。(sinatra是一個極力避免小題大作的建立web應用的ruby架構。)

flask遵循“約定優于配置”以及合理的預設值原則。

預設情況下,flask 不包含資料庫抽象層、表單驗證或是任何其它現有庫可以勝任的東西。作為替代的是,flask 支援擴充來給應用添加這些功能,如同是在 flask 自身中實作。衆多的擴充提供了資料庫內建、表單驗證、上傳處理、多種開放認證技術等功能。

flask 數目衆多的配置選項在初始狀況下都有一個明智的預設值,并遵循一些慣例。 例如,按照慣例,模闆和靜态檔案存儲在應用的 python 源代碼樹下的子目錄中,名稱分别為 templates 和 static 。雖然可以更改這個配置,但你通常不必這麼做, 尤其是在剛接觸 flask 的時候。

你首先需要 python 2.6 或更高的版本,是以請确認有一個最新的 python 2.x 安裝。

virtualenv 允許多個版本的 python 同時存在,對應不同的項目。 它實際上并沒有安裝獨立的 python 副本,但是它确實提供了一種巧妙的方式來讓各項目環境保持獨立。

如果你在 mac os x 或 linux下,下面兩條指令可能會适用:

或更好的:

上述的指令會在你的系統中安裝 virtualenv。它甚至可能會存在于包管理器中,如果你使用 ubuntu ,可以嘗試:

現在你隻需要鍵入以下的指令來激活 virtualenv 中的 flask:

這樣也是可以的,隻需要以 root 權限運作 pip:

一個最小的 flask 應用看起來是這樣:

把它儲存為 hello.py(或是類似的),然後用 python 解釋器來運作。

現在通路<code>http://127.0.0.1:5000/</code>

我們來解釋一下上面的代碼吧:

第一行導入了flask類,以便建立一個flask應用的執行個體。

接下來一行我們建立了一個flask類的執行個體。這是一個wsgi應用執行個體。wsgi是”web伺服器網關接口”web service gateway interface)的縮寫,同時也是架設web項目的python标準。這一行要告訴flask到哪裡去找應用所需的靜态資源和模闆。在我們的例子中,我們傳遞了name,讓flask在目前子產品内定位資源。

接着我們定義了一些關于<code>/</code>的路由。第一個路由是為根路徑<code>/</code>準備的,第二個則對應于類似<code>/shekhar</code>、<code>/abc</code>之類的路徑。對于<code>/</code>路由,我們将初始的name設定為guest。如果使用者通路 <code>http://localhost:5000/</code> ,那麼他會看到<code>hello guest</code>。如果使用者通路 <code>http://localhost:5000/shekhar</code> ,那麼他會看到 <code>hello shekhar</code>。

最後我們用 run() 函數來讓應用運作在本地伺服器上。 其中 <code>if __name__ == '__main__'</code>: 確定伺服器隻會在該腳本被 python 解釋器直接執行的時候才會運作,而不是作為子產品導入的時候。

如果你禁用了 debug 或信任你所在網絡的使用者,你可以簡單修改調用 run() 的方法使你的伺服器公開可用,如下:

這會讓作業系統監聽所有公開的ip。

有兩種途徑來啟用調試模式。一種是在應用對象上設定:

另一種是作為 run 方法的一個參數傳入: