mixins,generics(ApiView)
#生成序列化对象
class BookModelSerizter(serializers.ModelSerializer):
class Meta:
model=Book
fields='__all__'
##下面相当于是加个连接url,当你访问那个url的时候,就进行反向解析这个url
# author = serializers.HyperlinkedIdentityField(
# view_name='book_detail', ##反向解析
# lookup_field='author_id', ##这里是取这个id值,当你循环到那个外键的那个id值的值的时候,作为参数传进去
# lookup_url_kwarg='pk' ##把还是那个面的id作为参数传进去,就是在url路由里面的有名分组
# )
author=serializers.HyperlinkedIdentityField(
view_name="book_detail",
lookup_field="author_id",
lookup_url_kwarg="pk"
)
#整个流程的基础是基于apiview执行的
from rest_framework import mixins
from rest_framework import generics
class book(mixins.ListModelMixin,mixins.CreateModelMixin,generics.GenericAPIView):#首先从前面开始执行,到后面是进行调用这前面的方法
####之前的list的方法会找到下面的get_queryset,但里面是没有的,具会去子类里面去找,最终会找到GenericAPIView里面的get_queryset的方法,self.query=get_queryset,最终就是自己定义的下面的query方法
queryset = Book.objects.all()
serializer_class=BookModelSerizter
##拿到这个自定的序列化的类的对象 def get(self, request, *args, **kwargs):###得到所有的数据,调用下面的方法
return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs):##创建数据,调用下面的方法create
return self.create(request, *args, **kwargs) class bookdetail(mixins.RetrieveModelMixin,mixins.DestroyModelMixin,mixins.UpdateModelMixin,generics.GenericAPIView):
##注明一下,这个第一个是得到数据,第二个是删除单条数据,第三个是修改数据,最后执行这个GenericAPIView,里面进行了得到这个queryset,modelobj对象的处理,在这里最终执行的操作
queryset = Book.objects.all()
serializer_class = BookModelSerizter
##调用父类的序列化的方法,serializer_class 在GenericAPIView类下面有做处理
def get(self,request,*args,**kwargs):
#得到数据单条数据
return self.retrieve(request,*args,**kwargs)##执行下面的函数部分,调用这个函数 def delete(self,request,*args,**kwargs):
#删除数据单条数据
return self.destroy(request,*args,**kwargs)#调用DestroyModelMixin类下面的destory方法
def put(self,request,*args,**kwargs):
#修改数据,update的操作(修改单条数据)
return self.retrieve(request,*args,**kwargs)
mixins,generics(ApiView)的更多相关文章
- 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型
Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之 ...
- 设备模型(device-model)之平台总线(bus),驱动(driver),设备(device)
关于关于驱动设备模型相关概念请参考<Linux Device Drivers>等相关书籍,和内核源码目录...\Documentation\driver-model 简单来说总线(bus) ...
- iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告
一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...
- Unit02-OOP-对象和类,数组(下)
Unit02-OOP-对象和类,数组(下) 1.方法的签名: 方法名+参数列表 2.方法的重载(Overload): 1)发生在一个类中,方法名称相同,参数列表不同 2)编译器在编译时自动根据签名 ...
- 想了解JAVA的,看看(转载)
较新一篇 / 较旧一篇 编辑 |删除 | 复制链接 公开 想了解JAVA的,看看(转载)2009-03-01 15:41 (分类:默认分类) 先总结一下: J2SE (Core/Desktop) ...
- 蓝灯官网下载,蓝灯最新版下载,Lantern(蓝灯)
蓝灯官网下载,蓝灯最新版下载,Lantern(蓝灯)下载 >>>>>>>>>>>>>>>>>> ...
- 你好,C++(36)人参再好,也不能当饭吃!6.3 类是如何面向对象的
6.3 类是如何面向对象的 类作为C++与面向对象思想结合的产物,作为面向对象思想在C++中的载体,它的身上流淌着面向对象的血液.从类成员的构成到类之间的继承关系再到虚函数,到处都体现着面向对象封装 ...
- 你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化
第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢?程序的两大任务是描述数据和 ...
- Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,
Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...
随机推荐
- 12.scrapy框架
一.Scrapy 框架简介 1.简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个 ...
- 对两个数求和的str_echo函数
void str_echo(int sockfd) { long arg1, arg2; ssize_t n; char line[MAXLINE]; for ( ; ; ) { ) { return ...
- 10个免费的javascript富文本编辑器(jQuery and non-jQuery)
祝愿园子里的朋友圣诞节快乐. 本文介绍了10个免费易用富文本编辑器(rich text editors,RTE),其中5个是Jquery插件,另外5个是非Jquery富文本编辑器 简介 Javascr ...
- 20155324 2016-2017-2 《Java程序设计》第1周学习总结
20155324 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 1.1.1 前世今生 Java最早是Sun公司绿色项目Green Project中撰写Sta ...
- request和reponse
- 卷积中的full、same、valid
通常用外部api进行卷积的时候,会面临mode选择. 本文清晰展示三种模式的不同之处,其实这三种不同模式是对卷积核移动范围的不同限制. 设 image的大小是7x7,filter的大小是3x3 ...
- oracle 窗口函数over
select *,sum(字段) over()from table :--相加所有行这个字段的和 select max(字段1),over(partition by 字段2,字段3) from ta ...
- Luogu P3700「CQOI2017」小Q的表格
为什么我连分块都想不到啊... 题意 定义一个矩阵$f$满足 $ f(a,b)=f(b,a)$ $ b·f(a,a+b)=(a+b)·f(a,b)$ 初始$ f(a,b)=ab$ 有$ m$次修改,每 ...
- IDEA 启动项目前的配置--或过程遇到的问题
配置JDK 配置Maven路径和 仓库路径:文件->设置 配置Tomcat Server 文件-->设置 运行时 选择一个tomcat服务器 ==拓展: 本人台式机 的2016版本,因汉 ...
- java汇总
BeanUtils 操作Javabean 需要导入jar包,并且加入到构建路径里面去,选择右键--加入到****,jar包的图标变成奶瓶: => 位置会变成上一层: ======== 原来已经配 ...