drf tutoria 2 感受

本文介绍了如何在Django REST框架中实现视图函数的格式选择,并探讨了URL配置和不同内容类型响应的灵活性,以优化API的用户体验。通过展示snippet_list视图的处理方式,读者将了解如何让API根据客户端请求返回HTML、.json和.api等不同格式的数据。
摘要由CSDN通过智能技术生成

原网址

返回列表

if request.method == 'GET':
    snippets = Snippet.objects.all()
    serializer = SnippetSerializer(snippets, many=True)
    return Response(serializer.data)

is_valid 验证 / from rest_framework import status友好标识状态码

elif request.method == 'POST':
        serializer = SnippetSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

可浏览性

views.py # 视图函数 加上 format 参数
def snippet_list(request, format=None): 

urls.py # 引入format_suffix_patterns
from django.urls import path
from rest_framework.urlpatterns import format_suffix_patterns
from snippets import views

urlpatterns = [
    path('snippets/', views.snippet_list),
    path('snippets/<int:pk>', views.snippet_detail),
]

urlpatterns = format_suffix_patterns(urlpatterns)

由于 API 根据客户端请求选择响应的内容类型,因此默认情况下,当 Web 浏览器请求资源时,它将返回资源的 HTML 格式表示形式。这允许 API 返回完全可通过 Web 浏览的 HTML 表示形式。 (在url后加.json和.api会有不同的返回形式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值