首页 > 解决方案 > 带有前导/尾随斜杠且不带斜杠的路线

问题描述

您能否向我解释一下两者之间的区别:

@app.route( '/something' )

相比:

@app.route( 'something/' )

并且还与:

@app.route( 'something' )

所以我可以更好地区分它们?

标签: pythonflask

解决方案


总之,/foo这是正常的用例,/foo/当你想让 URL 看起来像一个路径/文件夹时使用,foo是错误的。如果我错了,请纠正我。

  1. URL 规则应以斜杠 ( /) 开头。
  2. /foo并且/foo/是两个不同的 URL 规则,请参阅文档中的详细信息:

以下两条规则在使用斜杠时有所不同。

 @app.route('/projects/') 
 def projects():
     return 'The project page'

 @app.route('/about') 
 def about():
     return 'The about page' 

项目端点的规范 URL 有一个尾部斜杠。它类似于文件系统中的文件夹。如果您访问的 URL 没有尾部斜杠,Flask 会将您重定向到带有尾部斜杠的规范 URL。

about 端点的规范 URL 没有尾部斜杠。它类似于文件的路径名。使用尾部斜杠访问 URL 会产生 404“未找到”错误。这有助于使这些资源的 URL 保持唯一性,从而帮助搜索引擎避免将同一页面编入两次索引。

链接: http: //flask.pocoo.org/docs/1.0/quickstart/#unique-urls-redirection-behavior


推荐阅读