我是Django的新手,正在尝试在Django中实现基本的REST API。我在MySQL数据库中有一个新闻列表,并且按照各种教程操作,成功地实现了一个响应新闻列表的Web服务。
http://127.0.0.1:8000/rest/news_infos/
以上URL(本地)产生以下页面:
如您所见,我在这里得到一个网页。但是我真正需要的是上述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
请让我知道是否需要其他代码/信息。在线找不到任何合适的解决方案。
答案 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]