rest-framework-视图

一 基本视图

写一个出版社的增删查改resful接口

路由:

    url(r'^publish/$', views.PublishView.as_view()),url(r'^publish/(?P<pk>\d+)/$', views.PublishDetailView.as_view()),

视图:

class PublishSerializers(serializers.ModelSerializer):class Meta:model=models.Publishfields='__all__'class PublishView(APIView):def get(self, request):publish_list = models.Publish.objects.all()bs = PublishSerializers(publish_list, many=True)# 序列化数据return Response(bs.data)def post(self, request):# 添加一条数据print(request.data)bs=PublishSerializers(data=request.data)if bs.is_valid():bs.save()  # 生成记录return Response(bs.data)else:return Response(bs.errors)class PublishDetailView(APIView):def get(self,request,pk):publish_obj=models.Publish.objects.filter(pk=pk).first()bs=PublishSerializers(publish_obj,many=False)return Response(bs.data)def put(self,request,pk):publish_obj = models.Publish.objects.filter(pk=pk).first()bs=PublishSerializers(data=request.data,instance=publish_obj)if bs.is_valid():bs.save() # updatereturn Response(bs.data)else:return Response(bs.errors)def delete(self,request,pk):models.Publish.objects.filter(pk=pk).delete()return Response("")

二 mixin类和generice类编写视图

from rest_framework.mixins import CreateModelMixin,RetrieveModelMixin,ListModelMixin,UpdateModelMixin,DestroyModelMixin
from rest_framework.generics import GenericAPIView
class PublishView(ListModelMixin,CreateModelMixin,GenericAPIView):queryset=models.Publish.objects.all()serializer_class=PublishSerializersdef get(self, request):return self.list(request)def post(self, request):return self.create(request)class PublishDetailView(RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin,GenericAPIView):queryset=models.Publish.objects.all()serializer_class=PublishSerializersdef get(self,request,*args,**kwargs):return self.retrieve(request,*args,**kwargs)def put(self,request,*args,**kwargs):return self.update(request,*args,**kwargs)def delete(self,request,*args,**kwargs):return self.destroy(request,*args,**kwargs)

三 使用generics 下ListCreateAPIView,RetrieveUpdateDestroyAPIView

from rest_framework.generics import ListCreateAPIView,RetrieveUpdateDestroyAPIView
class PublishView(ListCreateAPIView):queryset=models.Publish.objects.all()serializer_class=PublishSerializersclass PublishDetailView(RetrieveUpdateDestroyAPIView):queryset=models.Publish.objects.all()serializer_class=PublishSerializers

四 使用ModelViewSet

路由:

    url(r'^publish/$', views.PublishView.as_view({'get':'list','post':'create'})),url(r'^publish/(?P<pk>\d+)/$', views.PublishView.as_view({'get':'retrieve','put':'update','delete':'destroy'})),

视图:

from rest_framework.viewsets import ModelViewSet
class PublishView(ModelViewSet):queryset=models.Publish.objects.all()serializer_class=PublishSerializers

posted on 2019-01-05 20:13 漫天飞雪世情难却 阅读(...) 评论(...)  编辑 收藏

转载于:https://www.cnblogs.com/jokezl/articles/10225950.html

rest-framework-视图相关推荐

  1. 03 Django REST Framework 视图和路由

    01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别 ...

  2. Django Rest Framework 视图和路由

    DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢 urlpatterns = [url(r' ...

  3. Django REST framework 视图

    上一部分代码在序列化部分 类继承顺序 ############### mixins.py ################ # 类中调用的方法均在 GenericAPIView 类中实现,所以下列类需 ...

  4. Diango REST framework 视图继承图

    转载于:https://www.cnblogs.com/believepd/p/10252823.html

  5. jsf用于页面判断的标签_JSF –在JSF视图页面中添加标签,图像,按钮和文本字段

    jsf用于页面判断的标签 There are various UI components that JSF framework includes by default. Let us see some ...

  6. 基于SSM的餐饮工业化管理系统-计算机毕业设计

    餐饮工业化管理系统(Catering industrialization management) 项目简介 餐饮工业化管理系统是针对食品生产行业设计的一款专业生产管理软件.也是本次一位师弟的毕业设计( ...

  7. 30秒实现Vue吸顶效果

    酱酱,好久不见鸭! 前言:吸顶效果图: 1.滚动前: image.png 2.滚动中: image.png 3.滚动超过后: image.png 直观效果可参pc端微博左侧的信息栏 第一步:html ...

  8. 博客目录(python相关)

    python 相关 文件格式相关系列 Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML Python 第三方模块之 ElementTree(ET)- 解析XML文件 ...

  9. render在python中的含义_python面试中常见易混淆概念

    可变数据类型和不可变数据类型 基本数据类型都是不可变数据类型 数字,字符串,布尔值,元组 数据结构(容器)都是可变数据类型 列表,字典,集合 不同下划线变量的含义 _单下划线开头:弱"内部使 ...

  10. java 网校 代码_JAVA代码审计 | 因酷网校在线教育系统

    本文由红日水清 编写,如有不当,还望斧正. 0x00 CMS简介: 因酷 核心框架-Spring Framework 视图框架-Spring MVC 持久层框架-MyBatis 3 0x01 JDK ...

最新文章

  1. 长相酷似小强的小米「铁蛋」机器狗,售价 9999 元,打滚唱跳会空翻
  2. 比杠精网友更可怕的,是懂王同事
  3. 顺风详解Nginx系列—Ngx中的变量
  4. MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)...
  5. 获取前一天的时间安排表_要想有一个完美的婚礼 这份婚庆策划时间表少不了...
  6. 一文解析激光雷达中时序融合的研究现状和发展方向
  7. 如何搭建一个打印荣誉证书的网站_如何搭建一个免费的作品集网站
  8. python编辑器对比和推荐
  9. python交换数组中的两个元素_[Python]华为面试题,交换两个数组的元素使之总和的差值最小。...
  10. brew 安装mysql5.6_MacOS 10.14安装和brew更新后无法安装mysql gem
  11. js 正则或_Web前端工程师要知道的JS 常用正则表达式
  12. python代码运行助手下载_Python自学:使用代码运行助手
  13. 简述对互联网产品经理的认识
  14. 【Zotero同步管理】【Zotero 6.0 + 坚果云 + iPad官方zotero APP】最新版教程
  15. FZU 2037 Maximum Value Problem【递推】
  16. 订单信息无法识别,建议联系卖家。 错误码:INVALID_PARAMETER
  17. 使用多个可选过滤器过滤 Eloquent 模型
  18. 《心流-最佳体验心理学》读书笔记1-立于“无常”之中
  19. 自建免费的代理ip池
  20. 遗传算法优化BP神经网络在非线性函数拟合中的应用

热门文章

  1. 使用Windows迁移工具迁移2003至2012R2 二、IP迁移
  2. The Art of Prolog:Advanced Programming Techniques【译文】
  3. 超级简单:ASP.NET输出缓存
  4. 解决“HTTP Error 401 – Unauthorized”
  5. java有主函数的类_Android Project中运行带有main函数的Java类
  6. Linux下设置定期执行脚本
  7. Linux内核部件分析 设备驱动模型之device
  8. radio默认选中第一个_Mybatis学习之路【1】-- 第一个程序
  9. 深度学习解释:Precision、Recall、IoU、Ap/mAp
  10. Hadoop Configuration 源码详解