ste*_*eve 4 django django-views django-rest-framework
我正在努力使用 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}}))
Run Code Online (Sandbox Code Playgroud)
在浏览器中我只看到这样的 JSON 数据。
{“数据”:{“twitter_id”:352525,“推文”:121,“关注者”:1008,“关注”:281}}
您可以使用Serializer结果
class SampleSerializer(serializers.Serializer):
field1 = serializers.CharField()
field2 = serializers.IntegerField()
# ... other fieldsRun Code Online (Sandbox Code Playgroud)
my_data = {
"field1": "my sample",
"field2": 123456
}
my_serializer = SampleSerializer(data=my_data)
my_serializer.is_valid(True)
data = my_serializer.data
Run Code Online (Sandbox Code Playgroud)
您将在变量中获得序列化数据data(您可以my_serializer.data直接使用)
我应该在这里使用序列化器吗?
这取决于您,因为如果您希望在不通过 Twitter API 进行任何修改的情况下显示响应 JSON,则可以不使用 DRF 序列化程序。如果你想对 JSON 进行一些格式化,我的回答会对你有所帮助
我的 API 不可通过网络浏览。我应该如何使其可网络浏览?
也许您遵循了错误的程序。不管怎样,如果没有看到你的代码片段,我们就不能对这件事说更多
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)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9867 次 |
| 最近记录: |