首页 > 其他分享 >DRF之通过GenericAPIView的视图子类实现数据的增删改查接口

DRF之通过GenericAPIView的视图子类实现数据的增删改查接口

时间:2023-05-28 22:47:15浏览次数:40  
标签:GenericAPIView 子类 视图 django Book generics contrib import class

1、安装DRF

pip install djangorestframework

  

2、将DRF注册到APP中

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app.apps.AppConfig',
    'rest_framework',   # 将DRF注册到APP中
]

  

3、定义自己的模型类(数据表)

from django.db import models

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=32)
    pubDate = models.DateField()
    author = models.CharField(max_length=32)

    class Meta:
        db_table = "book"

  

4、定义序列化器

from rest_framework import serializers

# 定义序列化器
# BookSerializer为定义的序列化器名
# 需要继承:serializers.ModelSerializer类
class BookSerializer(serializers.ModelSerializer):
    
    class Meta:
        # model = Book:表示使用Book模型类的数据库表
        model = Book
        # fields = "__all__":表示使用表中的所有字段
        fields = "__all__"

  

5、定义路由

from django.urls import path, re_path
from app.views import BookView
from app.views import BookDetailView


urlpatterns = [
    path('admin/', admin.site.urls),
    
    
    path('book/', BookView.as_view()),
    re_path('book/(?P<pk>\d+)/', BookDetailView.as_view()),

]

  

6、定义视图类

# 需要导入generics
from rest_framework import generics


# BookView视图:继承generics.ListCreateAPIView
# 实现:查看所有数据 和 新增数据
class BookView(generics.ListCreateAPIView):
    # queryset:拿到Book表的所有数据
    queryset = Book.objects.all()
    # serializer_class:指定使用哪一个序列化器
    serializer_class = BookSerializer

# BookDetailView视图:继承generics.RetrieveUpdateDestroyAPIView
# 实现:查看某一条数据、更新数据、删除数据
class BookDetailView(generics.RetrieveUpdateDestroyAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

  

7、到此,接口实现完成

8、通过浏览器访问接口

 

 

9、通过postman工具访问接口

 

标签:GenericAPIView,子类,视图,django,Book,generics,contrib,import,class
From: https://www.cnblogs.com/zhangyh-blog/p/17439037.html

相关文章

  • 子类构造器常见应用
    packagecom.Demo1;publicclassTest{publicstaticvoidmain(String[]args){//搞清楚子类构造器为什么要调用父类构造器,有啥应用场景Teachert=newTeacher("李四",36,"Java");System.out.println(t.getName());System.out.pri......
  • 子类构造器的特点
        ......
  • 八、JUC-原子类
    一、基本类型原子类首先,我们来用原子类实现i++的效果,可以看出,结果并不是50000packagecom.lori.juc2023.juc8;importjava.util.concurrent.atomic.AtomicInteger;publicclassAtomicDemo1{publicstaticfinalintSIZE=50;publicstaticvoidmain(Strin......
  • 使用static_cast进行父类指针转子类指针可能出现的问题
    使用static_cast进行父类指针向子类指针的转换,可能会出现以下问题:如果转换的父类指针并不是指向真正的子类对象,而是指向另一个父类对象,那么转换后的子类指针将指向无效的内存地址,可能导致程序崩溃。如果子类对象中有虚函数或虚继承,static_cast可能会失效,因为它只进行编......
  • IntelliJ IDEA 中如何查看一个类的所有继承关系,包括父类与子类
    一、查看当前类所有的父类1、找到当前类所在的位置,右键选择Diagrams,然后选择ShowDiagrams……,以spring的ClassPathXmlApplicationContext类为例: 2、在弹出的框中选择JavaClassDiagrams:3、可以看到如下的结果,所有的父类继承关系: 二、查看当前所有的子类请移步我的博......
  • 数据库 视图、触发器、存储过程
    数据库视图、触发器、存储过程一直以来总是CRUD,只会操作数据库表了,其他的视图、触发器、存储过程忘完了,但因为生产事故被迫研究了一下,简单回顾一下概念吧。视图在看系统的权限管理部分时,发现它是从视图中查询数据的,通过将多个权限表的数据关联为视图,大大减少了查询时的SQL......
  • mysql表类型和存储引擎和视图
    1. mysql表类型和存储引擎  8031.1 基本介绍1. MySQL的表类型由存储引擎(Storage Engines)决定,主要包括MyISAM、innoDB、Memory等。2. MySQL数据表主要支持六种类型,分别是: CSV、 Memory、ARCHIVE、MRG_MYISAM、MYISAM、 InnoBDB.3.这六种又分为两类,一类是”事务安全型”......
  • 创建HANA的CDS视图
    有一个需求是对费用凭证的费用那行也要显示供应商。最终建立一个自定义表zfi036_xt 记录对应的供应商,再建一个CDS视图ZBSEG替换BSEG表 在HANA里   @AbapCatalog.sqlViewName:'ZBSEG'@AbapCatalog.compiler.compareFilter:[email protected]:tr......
  • springmvc执行流程和视图解析器
    代码在course1中1. springmvc请求的处理流程  9 1)发起some.do 2)tomcat(web.xml--url-pattern知道 *.do的请求给DispatcherServlet) 3)DispatcherServlet(根据springmvc.xml配置知道 some.do---doSome()) 4)DispatcherServlet把some.do转发个MyController.doSome()方法 5)框架......
  • 如何用windows任务视图管理多个程序,提高.net开发效率
    在Windows操作系统中,任务栏是一个非常重要的工具栏,用来显示当前正在运行的程序和任务。如果同时运行了很多程序,任务栏上的图标就会变得非常拥挤,不方便管理和切换。为了提高工作效率,可以通过任务视图来将这些运行程序分组,以便更好地管理和切换。任务视图是Windows操作系统中的......