#生成序列化对象
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. 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型

    Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之 ...

  2. 设备模型(device-model)之平台总线(bus),驱动(driver),设备(device)

    关于关于驱动设备模型相关概念请参考<Linux Device Drivers>等相关书籍,和内核源码目录...\Documentation\driver-model 简单来说总线(bus) ...

  3. iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告

    一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...

  4. Unit02-OOP-对象和类,数组(下)

    Unit02-OOP-对象和类,数组(下) 1.方法的签名: 方法名+参数列表 2.方法的重载(Overload):  1)发生在一个类中,方法名称相同,参数列表不同  2)编译器在编译时自动根据签名 ...

  5. 想了解JAVA的,看看(转载)

    较新一篇 / 较旧一篇 编辑 |删除 | 复制链接  公开 想了解JAVA的,看看(转载)2009-03-01 15:41 (分类:默认分类) 先总结一下: J2SE   (Core/Desktop) ...

  6. 蓝灯官网下载,蓝灯最新版下载,Lantern(蓝灯)

    蓝灯官网下载,蓝灯最新版下载,Lantern(蓝灯)下载 >>>>>>>>>>>>>>>>>> ...

  7. 你好,C++(36)人参再好,也不能当饭吃!6.3 类是如何面向对象的

    6.3  类是如何面向对象的 类作为C++与面向对象思想结合的产物,作为面向对象思想在C++中的载体,它的身上流淌着面向对象的血液.从类成员的构成到类之间的继承关系再到虚函数,到处都体现着面向对象封装 ...

  8. 你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化

    第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢?程序的两大任务是描述数据和 ...

  9. Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,

    Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...

随机推荐

  1. 群发技术-使用python3给微信好友群发消息

    本文介绍如何给个人微信好友群发消息. 微信个人号中的群发助手可以一次给30个发送消息,如果要给所有所有群发,则需要自己手动发送多次,或者借助程序实现了.本文即是程序实现教程 一.原理 在微信的官方网站 ...

  2. 从零开始搭建轻量级个人XSS平台

    一. 前言 决定搭建XSS平台是因为自己想深入学习一下XSS相关的知识,多多进行实践,上网搜索了一下XSS平台有很多,但是总觉得不是很安全,这个毕竟敏感信息要传输到陌生人的服务器上,而且服务器端测试代 ...

  3. 【U3d】场景加载-GameStart!

    目的:实现点击按钮场景切换 一共四个步骤,轻松食用(ง •̀_•́)ง 1. GameObject→UI→Button向开始场景中添加按钮,示例如下 2. 新建script——"LoadSc ...

  4. Ubuntu18.04终端设置为zsh后的问题记录

    1. 在将终端从bash切换成zsh后,需要将 .bashrc 下的一些配置迁移到 .zshrc 中: 例如,笔者在使用zsh中使用virtualenv及virtualenvwrapper的相关命令时 ...

  5. 最好用的 IntelliJ 插件 Top 10

    最好用的 IntelliJ 插件 Top 10 https://my.oschina.net/didispace/blog/1583238

  6. 阿里前CEO卫哲:马云好玩,人工智能泡沫巨大,新零售重在社区

    阿里前CEO卫哲:马云好玩,人工智能泡沫巨大,新零售重在社区 投资中国网 08-21 08:34 投中网(https://www.chinaventure.com.cn) 编者按:当下的技术时代,是跨 ...

  7. sql server 2008 windows验证改混合登陆中SqlServer身份验证用户名密码

    安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本主题介绍如何在安装后更改安全模式. 如果在安装过程中选择“ ...

  8. link标签和css引入方式

    link常见用途 <link> 标签最常见的用途是链接样式表,在 HTML 中,<link> 标签没有结束标签,此元素只能存在于 head 部分,不过它可出现任何次数. < ...

  9. C - Alphabetic Removals

    题目链接: You are given a string ss consisting of nn lowercase Latin letters. Polycarp wants to remove e ...

  10. mysql 分库分表 ~ 方案选择浅谈

    一 简介:分库分表的理解二 具体: 1 当由于单台DB业务增长导致的服务器压力时,就必须横向进行扩展              2 本文仅从中间层观点进行分析三 现有方案  方案1 sharding家 ...