5

当我输入/login为 url 时,它会出错

例如:

from flask import Flask ,url_for,render_template,request
app = Flask(__name__)

@app.route('/login')
def index():
  return "index"

if __name__== "__main__":
  app.run()

错误原来是这样的:

Not Found.
The requested URL was not found on the server.

当我/login/login/或任何其他词替换时/log,它会没事的。这是怎么发生的?

4

2 回答 2

7

请阅读烧瓶快速入门 Unique URLs / Redirection Behavior , URL canonicalizationTrailing slash in URLs - 哪种风格更受欢迎?

于 2013-02-19T12:56:23.550 回答
0

编辑

您可以在路由模块中关闭严格的 url 模式,以使/login/请求正常工作

app = Flask(__name__)在您定义任何路由之后和之前添加以下代码 。

app.url_map.strict_slashes = False

原始答案

我的 chrome 以某种方式弄乱了请求。我打开<F12>开发者工具,发现它会自动将我的/login请求重定向到/login/.

General
Request URL:http://roxma.org:8000/hello
Request Method:GET
Status Code:301 MOVED PERMANENTLY (from disk cache)
Remote Address:127.0.0.1:1080

Request
Content-Length:263
Content-Type:text/html; charset=utf-8
Date:Wed, 28 Dec 2016 14:24:44 GMT
Location:http://roxma.org:8000/hello/
Server:Werkzeug/0.11.11 Python/3.5.1

这很尴尬。我不知道如何解决这个问题。我想最好的解决方案是改用/login/样式。

于 2016-12-28T14:58:17.050 回答