使用Python Flask建置影像圖檔上傳網站服務(一):認識Flask框架的區域變數和flash快閃訊息功能

本文旨在補充《超圖解Python程式設計入門》第九章「使用Flask建置網站服務」單元,建立儲存使用者上傳影像圖檔的Python伺服器端程式,在此之前,先介紹Flask框架提供的一個「把Python程式的字串資料傳遞給HTML網頁樣版」的flash message(以下譯作「快閃訊息」)功能。

flash()與get_flashed_messages()函式

假設Python Flask的應用程式檔名是app.py,我們要從中傳遞三個文字訊息給index.html樣版,讓它整合成項目條列文字。請先在Python程式檔引用flask套件的flash模組,即可透過flash()函式傳遞字串。

在HTML樣版網頁中執行get_flashed_messages()函式(直譯為「取得快閃訊息」),將能傳回列表型態的快閃訊息字串內容。

flash()與get_flashed_messages()函式

使用 {% with %} … {% endwith %} 定義HTML樣版的區域變數

上面的HTML樣版透過set建立變數並儲存快閃訊息列表。Flask官方網站的處理上傳檔案說明頁裡的範例程式,透過 {% with %} … {% endwith %} 指令定義區域變數來儲存快閃訊息列表,像這樣:

使用 {% with %} … {% endwith %} 定義HTML樣版的區域變數

底下是另一個定義區域變數的寫法,如果你需要在HTML樣版的某個區塊定義多個區域變數,就可以用這種寫法:

使用 {% with %} … {% endwith %} 定義HTML樣版的區域變數

設置與篩選flash()快閃訊息的分類字串

flash()函式可接收兩個參數,第2個參數也是字串格式,內容是我們自訂的「訊息分類名稱」,例如,我們可以自行設定:”debug”(除錯)、”info”(資訊)、”warn”(警告)…等分類名稱。

底下程式中的flash()包含兩種分類訊息,但HTML樣版僅讀取其中一種分類。get_flashed_messages()函式的第一個參數False,代表不讀取快閃訊息中的分類字串,這不會影響訊息篩選作業。

設置與篩選flash()快閃訊息的分類字串

get_flashed_messages()函式的第一個參數設成True,傳回的快閃訊息格式將如同底下這樣,每一則訊息都附帶分類字串:

[
   ('warn',  '堅持'),
   ('warn', '不要臉'),
   ('info', '堅持不要臉')
]

所以for迴圈要額外設置一個儲存「分類名稱」的變數(此例命名為c):

設置與篩選flash()快閃訊息的分類字串
Posts created 470

2 thoughts on “使用Python Flask建置影像圖檔上傳網站服務(一):認識Flask框架的區域變數和flash快閃訊息功能

    1. 如同本文開頭所述,這是第九章的補充內容,所以我假設讀者具備Python和Flask的基礎。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top