Flask快速入门示例 - 带有尾部斜杠的404

时间:2015-06-26 11:50:22

标签: python flask werkzeug

我正在浏览Flask快速入门指南,但routing with variables的示例对我不起作用。

from flask import Flask
app = Flask(__name__)

@app.route('/') # fine
def index():
    return 'Index Page'

@app.route('/hello') # fine
def hello():
    return 'Hello World!'

@app.route('/user/<username>') # <- fails unless trailing slash here
def show_user_profile(username):
    return 'User {}'.format(username)

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

我也完全按照指南尝试了代码。我的第一个要点中的错误是预期的吗?快速入门版本中的代码是否有效?或者我误解了什么?

我正在使用Python 2.7.10,Flask 0.10.1,Werkzeug 0.10.4

2 个答案:

答案 0 :(得分:1)

我在python2中尝试了这个例子并且它工作正常,但是在你描述的python3问题中会发生。你使用的是第3版吗?如果你这样做,你确定你真的需要它吗?

看看这个http://flask.pocoo.org/docs/0.10/python3/#python3-support

答案 1 :(得分:-2)

这段代码在我的机器上运行了Python 2.7。

如果您使用多个参数,那么您的代码中错过了{0}。

A

正如您将观察到的,我已添加了两行代码

var Rows = from row in datatable.AsEnumerable()
       orderby n1 acsending, n2
       select row 

上面的行将确保具有尾部斜杠的路线仍然有效。如果需要,您需要操纵任何其他from flask import Flask app = Flask(__name__) @app.route('/') # fine def index(): return 'Index Page' @app.route('/hello') # fine def hello(): return 'Hello World!' @app.route('/user/<username>') # <- fails unless trailing slash here def show_user_profile(username): if request.url[-1] != '/': return redirect(request.url + '/') return 'User {0}'.format(username) if __name__ == '__main__': app.run() 而不是 if request.url[-1] != '/': return redirect(request.url + '/') 。请尝试此代码。