python web开发-flask中的url带斜线和不带斜线区别详解

时间:2023-12-29 19:50:50

通过flask进行路由配置的时候,有一个细节,就是同样的url,带上”/”和不带”/”有什么区别。

举例说明:

比如有个url,名字为”/url”

先同时定义两种url,一种带”/”,一种不带”/”,如下代码:

@app.route("/url")

def urlWithOut():

    return "url
with out /"



@app.route("/url/")

def urlWith():

    return "url
with /"

访问/url,效果如下:

python web开发-flask中的url带斜线和不带斜线区别详解

访问/url/效果如下:

python web开发-flask中的url带斜线和不带斜线区别详解

然后把/url这个定义注释掉,再次访问/url,发现会跳转到/url/这个地址上

如果把/url/这个定义注释掉,保留/url这个定义,再次访问/url/,发现报404错误

python web开发-flask中的url带斜线和不带斜线区别详解

结论,当带斜线和不还斜线的url同时存在时,两个url相互独立可以各自处理各自的逻辑。

当带斜线的url存在,不带斜线的url不存在时,带斜线的url和不带斜线的url可以同时访问不过返回的结果是同样的。

当带斜线的url不存在,不带斜线的url存在时,带斜线的url返回404,不带斜线的url可正常访问。