【问题标题】:Flask url_for Built Error烧瓶 url_for 内置错误
【发布时间】: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 值。

标签: flask url-for


【解决方案1】:

url_for('get_user', _external=True, id=9) 为我工作。但是get_user 必须对url_for 可见。

【讨论】:

  • 都是同一个文件。
  • 绝对没必要把&lt;int:id&gt;改成&lt;id&gt;
【解决方案2】:

当我今天检查它时它工作正常,但我不知道昨天出了什么问题......对不起 - 但非常感谢您的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2019-03-01
    • 1970-01-01
    • 2016-01-12
    • 2012-05-06
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多