Django返回网页而不是JSON

时间:2018-08-11 14:56:34

标签: python json django django-rest-framework

我是Django的新手,正在尝试在Django中实现基本的REST API。我在MySQL数据库中有一个新闻列表,并且按照各种教程操作,成功地实现了一个响应新闻列表的Web服务。

http://127.0.0.1:8000/rest/news_infos/

以上URL(本地)产生以下页面:

enter image description here

如您所见,我在这里得到一个网页。但是我真正需要的是上述API仅返回json。我不想在我的Web服务中提供此类页面,而只是JSON响应。当然,我只能通过将format=json附加到请求中来获取json。但这不是我所需要的。我希望网页消失,然后调用http://127.0.0.1:8000/rest/news_infos/返回json。

以下是我的views.py代码:

from rest_framework import viewsets
from .models import NewsContent, NewsInfo
from .serializers import NewsContentSerializer, NewsInfoSerializer

class NewsContentViewSet(viewsets.ViewSet):
    queryset = NewsContent.objects.all()[:10]
    serializer_class = NewsContentSerializer

class NewsInfoViewSet(viewsets.ModelViewSet):
    queryset = NewsInfo.objects.all()[:10]
    serializer_class = NewsInfoSerializer

请让我知道是否需要其他代码/信息。在线找不到任何合适的解决方案。

1 个答案:

答案 0 :(得分:1)

DEFAULT_RENDERER_CLASSES中将 settings.py 更改为

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (
        'rest_framework.renderers.JSONRenderer',
    )
}


可以通过提供 renderer_classes 作为

来实现 观看级别
from rest_framework import renderers


class MyView(...):
    renderer_classes = [renderers.JSONRenderer]