上一篇我們完成了第一個 Flask 程式:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hiiiii():
return "Hi Flask!"
if __name__ == '__main__':
app.run(debug=True)
打開:
http://127.0.0.1:5000/
顯示:
Hi Flask!
我們目前只有設定 / 這個 Path
但我們可能會想要建 /users 或 /tasks 等不同的 Path
那 Flask 要怎麼知道不同的 Path 要執行哪一段程式?
這時候就會用到 Route(路由)。
其實上一篇我們就已經有用到這個功能了喔
在這一段:
@app.route('/')
def hiiiii():
return "Hi Flask!"
裡面的:
@app.route('/')
= 如果 Request 來到 /,就執行下面的程式。
Route 最主要在做的事情:
讓一個 Path 對應到一個處理它的程式。
我們現在只有一個Path
那現在來多加一個吧
加入:
@app.route('/tasks')
def tasks():
return "My Tasks"
完整:
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hiiiii():
return "Hi Flask!"
@app.route('/tasks')
def tasks():
return "My Tasks"
if __name__ == '__main__':
app.run(debug=True)
這樣就有兩個 Route 了。
如果打開:
http://127.0.0.1:5000/
請求來到/
執行下面程式
顯示:
流程:
請求 來到 /
↓
Flask 找到 對應的路由
↓
執行下面的程式
↓
回傳 "Hi Flask!"
如果打開:
http://127.0.0.1:5000/tasks
請求來到/tasks
執行下面程式
顯示:
流程:
請求 來到 /tasks
↓
Flask 找到對應的路由
↓
執行下面的程式
↓
回傳 "My Tasks"
不同的 Path,可以執行不同的程式
Path也就是請求要去的路徑喔!
如果輸入沒有設定的 Path 呢?
我們現在只有設定
/
/tasks
這兩個路由
如果在瀏覽器輸入:
http://127.0.0.1:5000/abc
會怎麼樣呢
因為我們沒有設定 /abc 這個 Route,所以 Flask 找不到可以處理這個 Request 的程式,瀏覽器就會出現:
404 Not Found
所以 Flask 並不是看到任何 Path 都知道要怎麼處理,而是要先透過:
@app.route()
設定不同的 Path 要執行哪一段程式。
所以 Route 最主要在做的事情,就是讓一個 Path 對應到處理它的程式。
今天認識了 Route,知道可以透過 @app.route() 設定不同的 Path,讓 Request 到不同的 Path 時,執行不同的程式。
像今天我們設定了兩個不同的 Path:
/ → 顯示 Hi Flask!
/tasks → 顯示 My Tasks
可以根據不同的 Path,讓 Flask 做不同的事情。
但目前我們回傳的都只是 Hi Flask!、My Tasks 這種簡單的文字。
如果之後想要傳送像是作業名稱、截止日期、是否完成等資料,要怎麼傳出去呢?
下一篇就來看看 Flask 中的 Request、Response 和 JSON。