简体   繁体   English

如何将项目列表从我的 UI 发送到我的 Django Rest 框架 API?

[英]How do I send a list of items from my UI to my Django Rest Framework API?

my project uses multithreading to work on several tasks simultaneously.我的项目使用多线程同时处理多个任务。 I'd like my UI (I'm using Vue.js) to send a list/array of items to my API to work on each individual item task.我希望我的 UI(我正在使用 Vue.js)将项目列表/数组发送到我的 API 以处理每个单独的项目任务。 ex.前任。

[{ 
"1": "item1",
"2": "item2",
"3": "item3",
...}]

(API searches the items to find what commands to use, that's why I used multithreading so I can work on several tasks at once instead of sending each individual item which takes too long) (API 搜索项目以找到要使用的命令,这就是我使用多线程的原因,这样我可以同时处理多个任务,而不是发送每个单独的项目,这会花费太长时间)

How do I send a list or array of objects to the API?如何将对象列表或数组发送到 API?

The answer is by using JavaScript to send data via request to your endpoint.答案是使用 JavaScript 通过请求将数据发送到您的端点。 How to do it depends on what you want to use, for example, one popular choice is axios .如何操作取决于您要使用什么,例如,一种流行的选择是axios

Although, here is a simple example using fetch API :虽然,这是一个使用fetch API的简单示例:

template模板

<script>
    const url = '/your/endpoint/url/';
    data = [
        {'my': 'list', "of": "key", "pair": "values"}, 
        {'can': 'be', "multiple": "objects"}
    ]
    fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data) 
    })
    .then((response) => response.json())
    .then((data) => console.log(data.message));
</script>

views.py视图.py

class Endpoint(APIView):

    def post(self, request):
        print(request.data)
        # print output: [{'my': 'list', 'of': 'key', 'pair': 'values'}, {'can': 'be', 'multiple': 'objects'}]
        ...
        return Response({'message': 'data received'})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM