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)