【问题标题】:Is there a way to pass params to a Flask-Restless GET_SINGLE preprocessor?有没有办法将参数传递给 Flask-Restless GET_SINGLE 预处理器?
【发布时间】:2015-06-11 06:54:56
【问题描述】:

GET_MANY 预处理器接受内置的 search_params 字典,但 GET_SINGLE 只接受 instance_idkw** arg 传递给所有预处理器和后处理器,但 I've found that this is just for forwards compatibility,尽管这在 the Flask-Restless docs 中有些不清楚:

预处理器和后处理器函数的参数将作为关键字参数提供,因此在定义预处理器或后处理器函数时,应始终添加 **kw 作为最终参数。这样,您可以在定义函数时只指定您需要的关键字参数。此外,如果新版本的 Flask-Restless 更改了 API,您可以在不破坏代码的情况下更新 Flask-Restless。

那么是否不能将instance_id 以外的参数传递给 GET_SINGLE 预处理器?

编辑

也许有更好的方法来做我想做的事情:我有两个模型,FooBarFoo 中的记录将Bar 中记录的外键存储为其列之一。我想要一个 GET 请求发送到 Foo,它指定一个外键值,以从 Foo 中的记录集中返回一条准随机记录,并带有请求值的外键。

【问题讨论】:

  • 需要传递哪些参数?
  • 刚刚用解释更新了我最初的问题。
  • 这听起来像是一个搜索查询,这意味着将使用 GET_MANY 预处理器,即使您只期望一个结果。你能发布一些你的实际代码,以及你期望请求的样子吗?
  • 我之前使用的是 GET_MANY,但没有按预期工作。我刚刚发现这是因为我对weird Python way in which arguments (e.g. search_params) are passed 感到困惑。

标签: python flask flask-restless


【解决方案1】:

正如@1.618 所指出的,我的特定用例更适合 GET_MANY 请求,即使我只期望单个项目作为响应。我仍然不确定我最初问题的答案,但我的直觉是,不,没有办法将参数传递给 GET_SINGLE 请求,因为在 Flask-restless 中,它们仅适用于查询项目的场景按 ID。

我的特定问题的解决方案是改用 GET_MANY 请求,我最初尝试过但由于我错误地操纵了 search_params 参数以及我对 how variables are passed in Python 的困惑而无法开始工作。

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2023-02-18
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多