Flask web框架基礎入門筆記(1)
一 、Flask 安裝
在此不做介紹
二 新建一個最小的web應用
那麼這段程式碼做了什麼?
首先我們匯入了類 Flask。這個類的例項化將會是我們的 WSGI 應用。
接著,我們建立一個該類的例項。第一個引數是應用模組或包的名稱,這樣 Flask 才會知道去哪裡尋找模板、靜態檔案等等。如果你使用的是單一的模組(就如本例),第一個引數應該使用 name。
我們使用裝飾器 route() 告訴 Flask 哪個 URL 才能觸發我們的函式。
定義一個函式,該函式名也是用來給特定函式生成 URLs,並且返回我們想要顯示在使用者瀏覽器上的資訊。
三 、路由
3.1 路由介紹
正如上面所說,route
# hello.py
from flask import Flask
app = Flask(__name__)
# 如果訪問根目錄 '/' ,返回 Index Page
3.2 變數規則
為了給 URL 增加變數的部分,你需要把一些特定的欄位標記成 <variable_name> 。這些特定的欄位將作為引數傳入到你的函式中。當然也可以指定一個可選的轉換器通過規則<converter:variable_name> 將變數值轉換為特定的資料型別。
from flask import Flask
app = Flask(__name__)
# 如果訪問根目錄 '/' ,返回 Index Page
轉換器的主要型別如下:
型別 | 含義 |
string | 預設的資料型別,接受沒有任何斜槓“/”的字串 |
int | 接受整型 |
float | 接受浮點型別 |
path | 和 string 類似,但是接受斜槓“/” |
uuid | 只接受 uuid 字串 |
3.3 唯一URLs/重定向行為
Flask 的 URL 規則是基於 Werkzeug 的 routing 模組。該模組背後的思路是基於 Apache 和早期的 HTTP 伺服器定下先例確保優雅和唯一的 URL。
雖然它們看起來確實相似,但它們結尾斜線的使用在 URL 定義中不同。
第一種情況中,規範的 URL 指向 projects 尾端有一個斜線 /
。這種感覺很像在檔案系統中的資料夾。訪問一個結尾不帶斜線的 URL 會被 Flask 重定向到帶斜線的規範 URL 去。當訪問 http://***/projects/
時,頁面會顯示 The project page
。
然而,第二種情況的 URL 結尾不帶斜線,類似 UNIX-like 系統下的檔案的路徑名。此時如果訪問結尾帶斜線的 URL 會產生一個 404 “Not Found”
錯誤。當訪問 http://***/about
時,頁面會顯示 The about page
;但是當訪問 http://***/about/
時,頁面就會報錯 Not Found
。
當用戶訪問頁面忘記結尾斜線時,這個行為允許關聯的 URL 繼續工作,並且與 Apache 和其它的伺服器的行為一致,反之則不行,因此在程式碼的 URL 設定時斜線只可多寫不可少寫;另外,URL 會保持唯一,有助於避免搜尋引擎索引同一個頁面兩次。