【问题标题】:Django - Passing a json or an array in URL for an API callDjango - 在 URL 中为 API 调用传递 json 或数组
【发布时间】:2021-12-07 23:45:08
【问题描述】:

我想通过 API 传递一个数字变量(作为 JSON 或数组),例如:

{'age': 35, 'gender':'female', ...etc}

我不确定如何将此信息传递到 Djano URL。我可以在 URL 中设置单独的参数,但我有很多要传递的。一定有更简单的方法来做到这一点

解决方案: 通过在 API 中切换 POST 调用并为每个变量设置序列化程序以便它们可以通过请求传递来解决。

【问题讨论】:

  • 使用 POST 方法而不是 GET。你可以发送数据

标签: django django-rest-framework django-urls


【解决方案1】:

我正在使用 axios 从 django 后端进行调用。就我而言,我可以这样做:

js.文件:

function search(token, status, q) {
    return (dispatch) => {
        dispatch(start(token));
        axios
            .get(`${serverIP}/invoices/sales-invoice/`, {
                params: {
                    status: status,
                    q: q,
                },
            })
            .then((res) => {
                dispatch(successSearch(res.data, status));
            })
            .catch((err) => {
                dispatch(fail(err));
            });
    };
}

这里我发送 2 个参数,但您实际上可以发送对象,例如用户信息。 而不是在视图中得到它们

views.py:

def list(self, request, *args, **kwargs):
        status = request.query_params.get('status')
        q= request.query_params.get('q')

这些是 DRF 模型视图集的示例

【讨论】:

  • 谢谢!这使我走上了解决问题的正确道路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 2012-03-24
  • 2017-05-11
  • 2019-02-10
  • 2015-02-19
  • 2018-01-30
  • 1970-01-01
相关资源
最近更新 更多