You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Django REST禁用模板,仅返回JSON数据给Android应用?

嘿,这问题我之前对接移动端的时候也碰到过!要让你的接口只返回JSON、完全禁用模板渲染,刚好你已经在用Django REST Framework 3,咱们直接通过调整视图和配置就能搞定,具体步骤如下:

1. 修改 myapp/Views.py

核心是让视图只使用JSON渲染器,不管请求来自浏览器还是Android应用。把你的视图改成DRF的APIView子类(如果已经在用DRF视图,直接加配置就行):

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.renderers import JSONRenderer
from .models import Contact  # 替换成你的联系人模型

class ContactsAPIView(APIView):
    # 强制指定只使用JSON渲染器,拒绝其他渲染方式
    renderer_classes = [JSONRenderer]

    def get(self, request):
        # 查询需要返回的联系人数据,按需选择字段
        contact_list = Contact.objects.all().values('id', 'name', 'phone', 'email')
        # 用DRF的Response返回,自动序列化为JSON
        return Response({'data': contact_list})

提示:如果你的视图原本是用DRF的GenericAPIView或者ViewSet,只需要在类里加上renderer_classes = [JSONRenderer]这一行就可以,不用重构整个视图逻辑。

2. 修改 myapp/urls.py

把上面的视图映射到对应的子URL:

from django.urls import path
from .views import ContactsAPIView

urlpatterns = [
    # 对应/movil/contacts的子路径
    path('contacts/', ContactsAPIView.as_view(), name='mobile-contacts'),
]
3. 修改 proyect/urls.py

将myapp的路由包含到/movil路径下:

from django.urls import path, include

urlpatterns = [
    # 保留你原有的其他路由...
    path('movil/', include('myapp.urls')),
]

这样改完之后,不管是Android应用请求还是浏览器访问www.mypage.com/movil/contacts,都会直接返回纯净的JSON数据,完全不会触发模板渲染。如果之后你还想限制只有Android应用能访问这个接口,可以再给视图加上自定义权限类(比如检查请求的User-Agent),不过当前需求这样改就足够啦!

内容的提问来源于stack exchange,提问作者J.leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:17:24