1. url:
  1. re_path('authors/$', views.AuthorView.as_view()),
    re_path('authors/(\d+)/$', views.AuthorDetailView.as_view()),
  1.  
  2. from rest_framework.mixins import CreateModelMixin as create #创建数据
  3. from rest_framework.mixins import ListModelMixin as get_list_all #查看所有数据
  4. from rest_framework.mixins import DestroyModelMixin as delete #删除数据
  5. from rest_framework.mixins import RetrieveModelMixin as get_list_one #查看一条数据
  6. from rest_framework.mixins import UpdateModelMixin as updata #更新数据
  7.  
  8. from rest_framework import generics
  9.  
  10. class AuthorSerializers(serializers.ModelSerializer):
  11. class Meta:
  12. model = models.Author
  13. fields = "__all__"
  14. #depth = 1 #取消注释,显示更加详细的内容,不然只显示作者的主键值
  15.  
  16. class AuthorView(create,get_list_all,delete,get_list_one,updata,generics.GenericAPIView):
  17. queryset = models.Author.objects.all() #需要提供的数据 前面名字一定要这么写
  18. serializer_class = AuthorSerializers    #需要处理的类 前面名字一定要这么写
  19.  
  20. def get(self,request,*args,**kwargs): #获取所有数据
  21. return self.list(request,*args,**kwargs)
  22. def post(self,request,*args,**kwargs): #创建数据
  23. return self.create(request, *args, **kwargs)
  24.  
  25. class AuthorDetailView(create,get_list_all,delete,get_list_one,updata,generics.GenericAPIView):
  26. queryset = models.Author.objects.all()
  27. serializer_class = AuthorSerializers
  28.  
  29. def get(self,request,*args,**kwargs): #获取单条数据
  30. return self.retrieve(request,*args,**kwargs)
  31. def put(self,request,*args,**kwargs): #创建数据
  32. return self.update(request, *args, **kwargs)
  33. def delete(self,request,*args,**kwargs): #删除数据
  34. return self.destroy(request, *args, **kwargs)

rest_famework 增删改查初第二阶段(中级,此阶段是优化初级阶段的代码)的使用的更多相关文章

  1. rest_famework 增删改查初第三阶段(高级,此阶段是优化第二阶段的代码)的使用

    url: re_path('authors/$', views.AuthorView.as_view()), re_path('book/(?P<pk>\d+)/$', views.Boo ...

  2. rest_famework 增删改查初第四阶段(最高级,此阶段是优化第三阶段的代码)的使用

    两个url 共用一个视图 url url(r'^books/$', views.BookViewSet.as_view({"get":"list"," ...

  3. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  4. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

  5. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  6. BootstrapTable+KnockoutJS实现增删改查解决方案

    BootstrapTable+KnockoutJS实现增删改查解决方案 前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一 ...

  7. springboot+jpa+thymeleaf增删改查的示例(转)

    这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...

  8. 【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查

    原文:使用模板方法设计模式.策略模式 处理DAO中的增删改查 关于模板模式和策略模式参考前面的文章. 分析 在dao中,我们经常要做增删改查操作,如果每个对每个业务对象的操作都写一遍,代码量非常庞大. ...

  9. spring boot(十五)spring boot+thymeleaf+jpa增删改查示例

    快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.b ...

随机推荐

  1. legend_noa 的 EMACS配置

    (defun my-c-mode-auto-pair() (interactive) (make-local-variable'skeleton-pair-alist) (setq skeleton- ...

  2. java 线程理解

    import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util. ...

  3. Python argparse用法

    import argparse import sys parser = argparse.ArgumentParser(description='this is for test.') parser. ...

  4. rust 如何搜索,如何debug (解决)

    requirement c程序可以用手动查看.h文件获得定义,或者用dumpbin分析lib或者dll获得二进制信息. 但是rust如何得到库的定义呢? rust如何查看函数定义? rust如何deb ...

  5. CentOS 7中允许远程连接mariadb数据库

    # /etc/init.d/mysql restart 或者 service mysqld start 启动服务 # /etc/init.d/mysql stop 或者 service mysqld ...

  6. python3学习笔记13(数据结构)

    参考http://www.runoob.com/python3/python3-data-structure.html 列表 列表是可修改的. 列表方法让列表可以方便的作为一个堆栈来使用,堆栈作为特定 ...

  7. Elasticsearch-6.7.0系列(三)5601端口 kibana——ES的UI界面

    https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz      Kibana下载 有了elast ...

  8. 20175236 2018-2019-2 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章 try :用于监听.将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出. catch:用于捕获异常.catch用来捕获try ...

  9. http/https协议

    HTTP 1. 概念 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览 ...

  10. 关于eclipse创建web工程没有生成webapp文件夹的解决方案

    先看工程建立的是不是配置的打成War包,然后按下图所示