Django - 在 URL 中为 API 调用传递 json 或数组

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

使用 POST 方法而不是 GET。你可以发送数据 【参考方案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 模型视图集的示例

【讨论】:

谢谢!这使我走上了解决问题的正确道路。

以上是关于Django - 在 URL 中为 API 调用传递 json 或数组的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中禁用会话创建

如何在 django-rest-framework 中为 API 使用 TokenAuthentication

在 swift 包管理器中为 API 调用编写单元测试

MEDIA_URL 在 Django 1.4 中为空

在 Heroku 上的 Django 应用程序中为 CORS 指定 URL

如何在 Django settings.py 中为 CDN 设置 STATIC_URL