404连接到/ hello / 1但200连接到任何其他数字,例如烧瓶中的/ hello / 12

时间:2016-08-05 08:54:49

标签: python flask

尝试学习烧瓶但遇到一些错误或可能是一个问题。

def check_int(no):
    return "number is %d" %no
app.add_url_rule('/hello/<int:no>', 'nothign_specific', check_int)

因此,当我对http://127.0.0.1:5000/hello/1进行卷曲调用时,它会失败,其中相同的卷曲调用除1次传递之外的任何其他数字。 http://127.0.0.1:5000/hello/<any number apart from 1 passes>

127.0.0.1 - - [05/Aug/2016 14:17:48] "GET /hello/1/ HTTP/1.1" 404 -
127.0.0.1 - - [05/Aug/2016 14:18:01] "GET /hello/12 HTTP/1.1" 200 -

有人能告诉我正在发生的事情

1 个答案:

答案 0 :(得分:1)

在烧瓶中,如果您的路径(或规则)定义没有尾部斜杠是明确的。如果要在网址规则中添加尾随/,即

'/hello/<int:no>/'

然后你就可以同时使用(请求有或没有/)。

根据flask文档,具有尾部斜杠的路径被视为类似于文件系统中的文件夹名称:如果在没有斜杠的情况下访问,则烧瓶将识别它并将您重定向到具有斜杠的路径削减。相比之下,没有尾部斜杠定义的路由被视为文件的路径名,即当使用尾部斜杠访问时,它将抛出404

阅读详情:http://flask.pocoo.org/docs/0.11/quickstart/&#34;唯一网址/重定向行为&#34;