在烧瓶路线中,我有一个问题
我的路线是
@app.route('/user/<string:user>/')
def user(user):
return '' + str(user)
当我访问localhost:5000 / user / ahmed /在url末尾有斜杠时,一切都还可以
但如果我访问localhost:5000 / user / ahmed而没有最后一个斜杠
flask将我重定向到localhost:5000 / user / ahmed / None并给我404
答案 0 :(得分:2)
以下是直接从flask documentation
获取的一些相关信息唯一网址/重定向行为
Flask的URL规则基于Werkzeug的路由模块。这个想法 该模块的背后是确保基于的美丽和唯一的URL Apache和早期HTTP服务器规定的先例。
采取以下两条规则:
@app.route('/projects/') def projects(): return 'The project page' @app.route('/about') def about(): return 'The about page'
虽然它们看起来很相似,但它们对尾随的使用却有所不同 URL定义中的斜杠。在 第一种情况,项目端点的规范URL有一个 尾随斜线。从这个意义上说,它类似于一个文件夹 文件系统。在没有尾部斜杠的情况下访问它将导致Flask 使用尾部斜杠重定向到规范网址。
但是,在第二种情况下,URL的定义没有尾随 斜杠,更像是类UNIX系统上文件的路径名。 使用尾部斜杠访问URL将产生404“未找到” 错误。
此行为允许相对URL继续工作,即使 尾部斜杠被省略,与Apache和其他方式一致 服务器工作。此外,URL将保持唯一,这有助于搜索 引擎避免两次索引相同的页面。