Flask(1) - 關於 app.route()

關於 app.route() 其實還有一些特性可以探討:

  1. 綁定多個 URL 到同個 function
  2. 動態 URL (傳遞變量)

1. 綁定多個 URL:

我們可以綁定多個 URL 到同一個 View function:

from flask import Flask

app = Flask(__name__)

@app.route("/hello")
@app.route("/hi")
def greet():
    return "<h1 style=color:blue>Hello world</h1>"

預設 URL 會是 http://127.0.0.1:5000/hi 或是 http://127.0.0.1:5000/hello


2. 動態 URL:

我們可以把 URL 的一部分當作參數傳給 View function:

@app.route("/dessert/<name>")
def dessert(name):
    return "<h1>Do you want to get some {}?</h1>".format(name)

例如我們輸入 http://127.0.0.1:5000/dessert/chocolate 就會得到 Do you want to get some chocolate?


3. 幫動態 URL 設定預設值:

app.route() 的 default 參數可以傳入一個字典,這個字典可以傳遞給 View function

@app.route("/dessert", defaults={"name": "chocolate"})
@app.route("/dessert/>name&rt;")
def dessert(name):
    return "<h1>Do you want to get some {}?</h1>".format(name)

當我們輸入 http://127.0.0.1:5000/dessert 會得到 Do you want to get some chocolate?,因為 deafaults 提供了 name 參數給 dessert()。


留言

熱門文章