APIView た 入场券 2023-06-02 15:59 4阅读 0赞 ![1552472-20190731193133556-1382101022.png][] ![1552472-20190731193139357-1367327831.png][] ### 案例-使用APIView改写RestAPI ### # views.py from rest_framework.views import APIView from rest_framework import status from django.http import Http404 from booktest.serializers import BookInfoSerializer # /books/ class BookListView(APIView): """ 获取所有图书、增加图书 """ def get(self, request): """ 获取所有的图书数据 """ queryset = BookInfo.objects.all() # 序列化所有图书数据 serializer = BookInfoSerializer(queryset, many=True) return Response(serializer.data) def post(self, request): """ 新增一个图书数据 """ # 反序列化-数据校验 serializer = BookInfoSerializer(data=request.data) serializer.is_valid(raise_exception=True) # 反序列化-数据保存(save内部会调用序列化器类的create方法) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) # /books/(?P<pk>\d+)/ class BookDetailView(APIView): """ 获取、修改、删除指定图书 """ def get(self, request, pk): """ 获取指定图书 """ try: book = BookInfo.objects.get(pk=pk) except BookInfo.DoesNotExist: raise Http404 # 将图书数据进行序列化 serializer = BookInfoSerializer(book) return Response(serializer.data) def put(self, request, pk): """ 修改指定图书 """ try: book = BookInfo.objects.get(pk=pk) except BookInfo.DoesNotExist: raise Http404 # 反序列化-数据校验 serializer = BookInfoSerializer(book, data=request.data) serializer.is_valid(raise_exception=True) # 反序列化-数据保存(save内部会调用序列化器类的update方法) serializer.save() return Response(serializer.data) def delete(self, request, pk): """ 删除指定图书: """ try: book = BookInfo.objects.get(pk=pk) except BookInfo.DoesNotExist: raise Http404 book.delete() return Response(status=status.HTTP_204_NO_CONTENT) 转载于:https://www.cnblogs.com/oklizz/p/11278593.html [1552472-20190731193133556-1382101022.png]: /images/20230601/8f94d4229d6349c1859d7d93e6dcd8aa.png [1552472-20190731193139357-1367327831.png]: /images/20230601/ab1fd19cdd224378bfdfe101f21ce408.png
相关 【Django】REST_Framework框架——APIView类源码解析 ![在这里插入图片描述][deb332e2f3da40a5b36aea651d9db3b6.webp_pic_center] 一、APIView类源码解析 1、API 秒速五厘米/ 2024年04月08日 13:08/ 0 赞/ 72 阅读
相关 APIView ![1552472-20190731193133556-1382101022.png][] ![1552472-20190731193139357-1367327831.p た 入场券/ 2023年06月02日 15:59/ 0 赞/ 5 阅读
相关 day02---DRF视图---APIView 一:DRF基本视图继承关系简图: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0c 迷南。/ 2022年12月08日 15:46/ 0 赞/ 157 阅读
相关 DRF-基于APIView的认证流程 rest framework框架 我们来看一段伪代码,MyClassView继承了APIView就有了APIView的功能 class APIView(V ゝ一世哀愁。/ 2022年02月14日 16:04/ 0 赞/ 242 阅读
相关 Django中rest_framework的APIView,序列化组件和视图组件 url urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^books/ - 日理万妓/ 2021年12月15日 15:09/ 0 赞/ 246 阅读
相关 DRF之APIView源码简析 一. 安装djangorestframework 安装的方式有以下三种,注意,模块就叫djangorestframework。 方式一:pip3 install 青旅半醒/ 2021年11月23日 00:34/ 0 赞/ 310 阅读
相关 Django 之restfromwork 源码---APIView 分析 Django 之 djangorestframework的APIView分析 APIView 类中的as\_view() 方法 首先 我们从视图函数入手,在urls 阳光穿透心脏的1/2处/ 2021年11月17日 15:58/ 0 赞/ 270 阅读
还没有评论,来说两句吧...