有没有办法将参数传递给 Flask-Restless GET_SINGLE 预处理器?

Posted

技术标签:

【中文标题】有没有办法将参数传递给 Flask-Restless GET_SINGLE 预处理器?【英文标题】:Is there a way to pass params to a Flask-Restless GET_SINGLE preprocessor? 【发布时间】: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 感到困惑。 【参考方案1】:

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

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

【讨论】:

以上是关于有没有办法将参数传递给 Flask-Restless GET_SINGLE 预处理器?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法避免将所有参数传递给函数[重复]

有没有办法将参数传递给 google bigquery 以在其“IN”函数中使用

有没有办法在 CodeIgniter *不*使用 ActiveRecord 的情况下将参数传递给查询?

有没有办法将命令行参数传递给自定义入口点(C / C ++)

有没有办法在不重复变量名的情况下将命名参数传递给格式化宏?

有没有办法将参数传递给 Flask-Restless GET_SINGLE 预处理器?