【发布时间】:2015-02-16 19:52:30
【问题描述】:
我的代码中有这一行:
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})
(Hello 只是为了让我看看该功能是否被触发 - 它不会触发)
那么错误是这样的:
File "C:\Python27\lib\site-packages\werkzeug\routing.py", line 1616, in build
raise BuildError(endpoint, values, method)
BuildError: ('get_user', {}, None)
你知道这是为什么吗?
感谢您的帮助!!!
PS.:如果有帮助的话,我最初使用的是 Miguel Grinberg 的 tutorial about building an API with Flask,它一开始就可以工作,但后来我玩了一下,就是这样......
【问题讨论】:
-
您是否在模块中导入了
get_user,您在其中调用了print? -
都是同一个文件。
-
你用的是什么版本的flask和werkzeug?
-
你能给我们异常的完整回溯吗?该错误表明您没有传入
id=9(第二个参数values为空)。 -
@Jimilian:不,它找不到不带参数的方法。那是不同的东西。例如,如果使用
@app.route('/api/users/', defaults={'id': -1})注册了相同的函数,则可以使用url_for()而无需指定id值。