Flask 用于生成错误的url\u
我的代码中有这一行:Flask 用于生成错误的url\u,flask,url-for,Flask,Url For,我的代码中有这一行: print "Location: ", url_for('get_user', id=9, _external=True) 其功能应为: @app.route('/api/users/<int:id>') def get_user(id): print "Hello: ", id user = User.query.get(id) if not user: abort(400) return jsonif
print "Location: ", url_for('get_user', id=9, _external=True)
其功能应为:
@app.route('/api/users/<int:id>')
def get_user(id):
print "Hello: ", id
user = User.query.get(id)
if not user:
abort(400)
return jsonify({'username': user.firstname})
你知道为什么吗
谢谢你的帮助
注:如果有帮助的话,我最初使用的是米格尔·格林伯格(Miguel Grinberg)的,它在一开始就很有效,但后来我到处玩,就是这样…
url\u for('get\u user',\u external=True,id=9)
对我很有效。但是get\u user
对于url\u对于必须是可见的,当我今天检查它时,它工作了,我不知道昨天出了什么问题…抱歉-但非常感谢您的建议。您是否在模块中导入了get\u user
,您在哪里调用print
?它都是相同的文件。您使用的是什么版本的flask和werkzeug?您能给我们提供异常的完整回溯吗?错误表明您没有传入id=9
(第二个参数values
,为空)。@Jimilian:不,它找不到不带参数的方法。那是不一样的。例如,如果在@app.route('/api/users/',defaults={id':-1})
中注册了相同的函数,则可以使用url\u for()
而不指定id
值。它是同一个文件。完全不需要将
更改为
。
File "C:\Python27\lib\site-packages\werkzeug\routing.py", line 1616, in build
raise BuildError(endpoint, values, method)
BuildError: ('get_user', {}, None)