Django Rest框架:无模型

时间:2018-07-02 03:48:05

标签: django django-rest-framework django-views

我正在使用DRF(Django Rest Framework)创建RESTAPI。 API只是接收用户的twitter句柄并返回其twitter数据。

在这里,我在这里不使用模型,因为它不是必需的。

我应该在这里使用序列化程序吗?如果可以,为什么?现在,我无需使用序列化程序即可返回数据。 此外,“我的API”无法通过网络浏览。我应该如何使其可通过网络浏览:这是DRF的最佳功能之一。

编辑:1

我在视图中使用函数。

@api_view(['GET'])
@csrf_exempt
def getdetails(request):

    call the twitter api
    receive the data
    return HttpResponse(JsonResponse( {'data': {'twitter_id':id,'tweets':count,'Followers':followers,'following':count_follow}}))

在浏览器中,我只看到这样的JSON数据。

{“数据”:{“ twitter_id”:352525,“ tweets”:121,“关注者”:1008,“关注者”:281}}

1 个答案:

答案 0 :(得分:0)

您可以将Serializer用于结果

class SampleSerializer(serializers.Serializer):
    field1 = serializers.CharField()
    field2 = serializers.IntegerField()
    # ... other fields

用法

my_data = {
    "field1": "my sample",
    "field2": 123456
}

my_serializer = SampleSerializer(data=my_data)
my_serializer.is_valid(True)
data = my_serializer.data

您将在data变量中获得序列化的数据(可以直接使用my_serializer.data

  

我应该在这里使用序列化器吗?

由您决定,因为如果您希望在不对Twitter API进行任何修改的情况下显示响应JSON,则可以不使用DRF序列化程序。而且,如果您希望对JSON进行某种格式设置,我的回答将为您提供帮助

  

我的API无法通过网络浏览。我应该如何使其可通过网络浏览?

也许您遵循错误的程序。无论如何,如果没有看到您的代码片段,我们就不能再对此多说了

Update-1

from rest_framework.response import Response


@api_view(['GET'])
@csrf_exempt
def getdetails(request):
    call the twitter  api
    twitter_api = get_response_from_twitter()  # Json response
    return Response(data=twitter_api)