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
转载于:https://www.cnblogs.com/HUIWANG/p/11140157.html
rest-framework 视图相关推荐
- 03 Django REST Framework 视图和路由
01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别 ...
- Django Rest Framework 视图和路由
DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢 urlpatterns = [url(r' ...
- Django REST framework 视图
上一部分代码在序列化部分 类继承顺序 ############### mixins.py ################ # 类中调用的方法均在 GenericAPIView 类中实现,所以下列类需 ...
- Diango REST framework 视图继承图
转载于:https://www.cnblogs.com/believepd/p/10252823.html
- jsf用于页面判断的标签_JSF –在JSF视图页面中添加标签,图像,按钮和文本字段
jsf用于页面判断的标签 There are various UI components that JSF framework includes by default. Let us see some ...
- 基于SSM的餐饮工业化管理系统-计算机毕业设计
餐饮工业化管理系统(Catering industrialization management) 项目简介 餐饮工业化管理系统是针对食品生产行业设计的一款专业生产管理软件.也是本次一位师弟的毕业设计( ...
- 30秒实现Vue吸顶效果
酱酱,好久不见鸭! 前言:吸顶效果图: 1.滚动前: image.png 2.滚动中: image.png 3.滚动超过后: image.png 直观效果可参pc端微博左侧的信息栏 第一步:html ...
- 博客目录(python相关)
python 相关 文件格式相关系列 Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML Python 第三方模块之 ElementTree(ET)- 解析XML文件 ...
- render在python中的含义_python面试中常见易混淆概念
可变数据类型和不可变数据类型 基本数据类型都是不可变数据类型 数字,字符串,布尔值,元组 数据结构(容器)都是可变数据类型 列表,字典,集合 不同下划线变量的含义 _单下划线开头:弱"内部使 ...
- java 网校 代码_JAVA代码审计 | 因酷网校在线教育系统
本文由红日水清 编写,如有不当,还望斧正. 0x00 CMS简介: 因酷 核心框架-Spring Framework 视图框架-Spring MVC 持久层框架-MyBatis 3 0x01 JDK ...
最新文章
- 零基础入门学习Python(20)-lambda表达式、filter()、map() BIF
- suse linux c 编译环境,SUSE 11中安装GCC开发环境
- python是c语言写的吗-python是c语言开发的吗
- C语言——指针与结构体 内存的动态分配
- 同步 GIT@OSC 实现MARKDOWN文件发布或更新到CSDN博客中
- Java 13,最新最全新特性解读
- LeetCode 1427. 字符串的左右移
- v8引擎和v12引擎_v8和v12发动机的区别
- 教你如何找网络上的图片素材
- Java项目Lombok
- Linux系统压缩解压缩
- 在win10系统上使用HiTool工具网口烧写Hi3516DV300开发板【踩坑总结:网络环境有限制】
- r语言如何计算t分布临界值_[统计]从p-value到q-value的计算(附代码)
- wx.chooseImage上传本地PC端和移动端区别
- matlab 多个向量的余弦角_matlab中怎么求一个行向量的反余弦值
- 温莎计算机应用硕士是针对国际学生的吗,留学温莎大学
- 《测绘综合能力》——海洋测绘
- 如何学好编程%2B(精挑细选编程教程,帮助现在在校学生学好编程,让你门找到编程的方向)四个方法总有一个学好编程的方法适合你%2529
- 【译】 从源代码构建 deb 包
- VR基础——PicoVR SDK接入及使用整理
热门文章
- LPSTR LPCSTR LPWSTR LPCWSTR区别
- java表示语句结束的符号,java基础篇三(运算符号、表达式与语句)
- python画曲线图例-Python数据分析-Matplotlib图标绘制
- pythonweb开发-Python Web开发
- python处理多个excel文件-Python将多个excel文件合并为一个文件
- python到底可以做什么-Python究竟是什么?能干嘛?
- python与办公自动化-用 Python 自动化办公,我与大神之间的差距一下就
- python学习音频-Python学习笔记--音频处理
- python全套视频教程下载-老男孩python全套视频教程百度云资源下载
- 通信专业学python有用吗-通信算法工程师需要学python吗