我正在浏览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()
@app.route('/user/<username>/')
,http://127.0.0.1:5000/user/bob会重定向到http://127.0.0.1:5000/user/bob/并且页面呈现正确我也完全按照指南尝试了代码。我的第一个要点中的错误是预期的吗?快速入门版本中的代码是否有效?或者我误解了什么?
我正在使用Python 2.7.10,Flask 0.10.1,Werkzeug 0.10.4
答案 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 + '/')
。请尝试此代码。