flask中帶斜線和不帶斜線的url
通過flask進行路由配置的時候,有一個細節,就是同樣的url,帶上”/”和不帶”/”有什麼區別。
舉例說明:
比如有個url,名字爲”/url”
先同時定義兩種url,一種帶”/”,一種不帶”/”,如下代碼:
@app.route("/url")
def urlWithOut():
return "url with out /"
@app.route("/url/")
def urlWith():
return "url with /"
訪問/url,效果如下:
訪問/url/效果如下:
然後把/url這個定義註釋掉,再次訪問/url,發現會跳轉到/url/這個地址上
如果把/url/這個定義註釋掉,保留/url這個定義,再次訪問/url/,發現報404錯誤
結論,當帶斜線和不還斜線的url同時存在時,兩個url相互獨立可以各自處理各自的邏輯。
當帶斜線的url存在,不帶斜線的url不存在時,帶斜線的url和不帶斜線的url可以同時訪問不過返回的結果是同樣的。
當帶斜線的url不存在,不帶斜線的url存在時,帶斜線的url返回404,不帶斜線的url可正常訪問。