route()裝飾器把一個函數綁定到對應的url上
結合我們之前的例子如下:
@app.route("/")
def index():
return "Index Page"
@app.route('/main')
def hello_world():
if __name__=='main':
return 'Hello World!'
else:
return "hello my name is "+__name__
運行代碼后
Main頁面如圖:
以上是靜態url的配置規則,下面我們來看一下動態url如何配置
動態url,即在url中可以動態傳入參數,和函數實現動態交互
比如,我們通過在url中加入一個名字,動態輸出這個名字,如圖:
要實現這個效果只需要在route裝飾器中加入參數即可如下:
@app.route("/<name>")
def helloSomeone(name):
return "hello "+name
可以看到在route的url配置中加入變量的規則是通過使用<>把變量包起來,然后加入變量名,名字要和函數的參數名一致如上的<name>
限定url參數的數據類型,可以通過<類型:名稱>這樣的格式,比如可以限制<int:name>這樣當在參數中輸入非int類型的時候,會返回404錯誤
用url_for反向獲取函數的url
首先要引入url_for
from flask import Flask,url_for
創建getUrls函數
@app.route("/getUrls")
def getUrls():
url = url_for("index") + ","
url += url_for("hello_world")+","
url += url_for("helloSomeone",name="li si")
運行並且訪問,結果如下:
通過url_for方法可以在開發過程中反向查看特定函數的url信息,是一個比較有用的工具。
url_for還有一個比較特殊的用法,url_for(‘static’,filename=’xxx’)
這個用法主要用來返回static文件夾下面的某個文件的路徑,比如在static文件夾下面添加一個myfile.js文件
用url_for進行查詢:
運行查看結果