一、什麼是Flask?¶
Flask是一個用Python編寫的輕量級Web框架,它簡單易用、靈活輕量,非常適合初學者快速上手開發Web應用。相比其他複雜框架(如Django),Flask更注重“按需擴展”,不需要預先配置大量組件,就能快速實現一個簡單的網頁。
二、安裝Flask¶
在開始之前,我們需要先安裝Flask。確保你的電腦已安裝Python(推薦Python 3.6+),然後打開終端(Windows用命令提示符,Mac/Linux用終端),執行以下命令:
pip install flask
如果提示權限問題,可嘗試用pip3 install flask(針對Python 3)。安裝完成後,輸入flask --version檢查是否成功安裝。
三、第一個Flask應用:路由與視圖函數¶
“路由”就像網頁的“入口”,比如訪問http://localhost:5000/時,Flask需要知道這個請求對應哪個“處理函數”(視圖函數);“視圖函數”則是處理請求並返回內容的函數。
1. 編寫基礎代碼¶
創建一個新的Python文件(例如app.py),輸入以下代碼:
# 導入Flask類
from flask import Flask
# 實例化Flask應用,app是應用對象
app = Flask(__name__)
# 定義路由:當用戶訪問根路徑“/”時,執行下面的函數
@app.route('/')
def home():
# 函數返回的字符串會自動作爲網頁內容返回給用戶
return "Hello, Flask!"
# 運行應用(僅在直接執行該腳本時生效)
if __name__ == '__main__':
app.run()
2. 代碼解釋¶
- 導入Flask:
from flask import Flask是爲了使用Flask提供的Web開發功能。 - 實例化app:
app = Flask(__name__)創建一個Flask應用對象,__name__是Python內置變量,表示當前模塊名稱(用於定位資源路徑)。 - 路由裝飾器:
@app.route('/')是關鍵!它的作用是“綁定”路由路徑(這裏是根路徑/)和下面的函數home。當用戶訪問http://localhost:5000/時,Flask會自動調用home()函數。 - 視圖函數:
home()函數是處理請求的核心,它的返回值(這裏是字符串“Hello, Flask!”)會被Flask自動轉換爲HTTP響應,直接顯示在瀏覽器中。 - 運行應用:
app.run()啓動Flask內置的開發服務器,默認端口是5000,地址爲http://127.0.0.1:5000。
3. 運行應用並訪問¶
在終端執行python app.py(確保當前路徑是app.py所在目錄),你會看到類似以下輸出:
* Serving Flask app 'app'
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
此時打開瀏覽器,訪問http://localhost:5000,就能看到網頁上顯示“Hello, Flask!”,恭喜你!第一個Flask頁面完成了!
四、進階:動態路由(帶參數的頁面)¶
除了固定路徑,Flask還支持動態路由,比如用戶訪問/user/張三時,頁面顯示“Hello, 張三!”。
修改app.py代碼,添加一個帶參數的路由:
from flask import Flask
app = Flask(__name__)
# 基礎路由(根路徑)
@app.route('/')
def home():
return "Hello, Flask!"
# 動態路由:<username>是參數佔位符
@app.route('/user/<username>')
def user_profile(username):
# 函數接收username參數,用於個性化返回內容
return f"Hello, {username}!"
if __name__ == '__main__':
app.run()
現在訪問http://localhost:5000/user/Alice,頁面會顯示“Hello, Alice!”;訪問/user/Bob,則顯示“Hello, Bob!”。
小提示:動態路由支持多種類型,比如<int:num>接收整數參數(例如/user/123,num=123),<float:price>接收浮點數,默認是字符串類型。
五、總結¶
- 安裝:
pip install flask - 核心概念:
- 路由:通過@app.route(路徑)綁定URL與視圖函數。
- 視圖函數:處理路由請求,返回網頁內容。
- 運行應用:app.run()啓動開發服務器。 - 關鍵技巧:
- 用if __name__ == '__main__'確保app.run()只在直接執行腳本時生效。
- 動態路由可通過<參數名>傳遞變量,增強頁面靈活性。
現在你已經掌握了Flask最基礎的路由和視圖函數知識,嘗試修改代碼吧!比如:
- 改路由路徑(如/about),讓首頁顯示不同內容。
- 給視圖函數返回HTML標籤(如<h1>Hello</h1>),讓頁面更美觀。
Flask的世界充滿樂趣,快去探索更多功能吧!