如何使用REST框架从视图中获取JSON对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用REST框架从视图中获取JSON对象相关的知识,希望对你有一定的参考价值。

我使用django Rest Framework,我想获得由Rest Framework构建并使用搜索的JSON。所以我需要使用empidlong来调用JSON外的请求。

例如http://localhost:8000/abc/?search=12

如果你在网上冲浪,你会得到

这是在调用上面的URL时从Rest API进行的

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "company": "ABC",
        "plate_no": "1234",
        "project_code": "ABC1234",
        "empidlong": "123456",

    },
]

这是我的代码views.py

from django.shortcuts import render

# Create your views here.
from rest_framework import viewsets, filters
from .models import getData
from .serializers import CarSerializer
import requests

#def res(requests):
#    res = pd.DataFrame(list(getData.objects.all().values()))

class CarViewSet(viewsets.ModelViewSet):

    #filter_class = getDataFilter
    #filter_backends = (filters.SearchFilter, DjangoFilterBackend)
    #queryset = getData.objects.all()
    #serializer_class = CarSerializer
    queryset = getData.objects.all()
    serializer_class = CarSerializer
    filter_backends = (filters.SearchFilter,)
    __basic_fields = ('plate_no',)
    search_fields = __basic_fields

    def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        #serializer = ProfileSerializer(instance=instance)

        serializer = CarSerializer(instance=instance)
        data = serializer.data
        for a in data:
            empid= a['empidlong']
            requests.get('http://192.168.10.32/BASIC%20DATA/GetEmployees/'+empid +'/Y')

        return Response(serializer.data)

    def get_queryset(self):
        queryset = getData.objects.all()
        emp = self.request.query_params.get('emp', None)

        if emp is not None:
            queryset =  queryset.filter(empidlong=emp)

        return queryset

问题是我在运行此代码时遇到了request.get('http://192.168.10.32/GetEmployees/'+ empid)

此URL请求无法正常工作(不发送获取请求)

预先感谢。

答案

您好,在网址中您没有指定要使用的方法。试试这个例子

requests.GET.get('http://192.168.10.32/BASIC%20DATA/GetEmployees/'+empid +'/Y')

以上是关于如何使用REST框架从视图中获取JSON对象的主要内容,如果未能解决你的问题,请参考以下文章

从 REST API 过滤 JSON 对象的疑问

如何遍历从 REST API 获得的响应对象并以角度 2 在视图中显示数据

如何在可缩放滚动视图中绘制可点击的网格对象,从远程 json 数据中获取数据?

如何使用 wcf REST 服务获取自定义对象的 json 响应?

如何在我的视图中从请求对象获取 jwt 有效负载

如何使用 MySQL 在 Spring Boot REST API 中放置和获取任何格式的 JSON 对象?