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工具访问接口

10、请求方式

get:查看

post:新增

put:更新

delete:删除

DRF之通过GenericAPIView的视图子类实现数据的增删改查接口的更多相关文章

  1. 使用drf的序列化类实现增删改查接口

    目录 什么是DRF 安装DRF 基于原生创建五个接口 基于rest_framework的增删改查 查询多条数据 流程 创建表 创建序列化类 创建视图类 增加路由 查询单条数据 序列化类不变 视图类定义 ...

  2. 基于DRF的图书增删改查练习

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  3. 基于DRF的图书增删改查

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  4. 设置Sql server用户对表、视图、存储过程、架构的增删改查权限

    根据数据库Schema限制用户对数据库的操作行为 授予Shema dbo下对象的定义权限给某个用户(也就是说该用户可以修改架构dbo下所有表/视图/存储过程/函数的结构) use [Your DB N ...

  5. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  6. Flask一种通用视图,增删改查RESTful API的设计

    模型设计是后端开发的第一步.数据模型反映了各种对象之间的相互关系. from app import db class Role(db.Model): """角色" ...

  7. django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1 CreateModelMixin 2 RetrieveModelMixin 3 UpdateModelMixin 4 DestroyModelMixin <1> 创 ...

  8. spring boot整合mybatis框架及增删改查(jsp视图)

    工具:idea.SQLyog 版本:springboot1.5.9版本.mysql5.1.62 第一步:新建项目 第二步:整合依赖(pom.xml) <dependencies> < ...

  9. ABP入门教程9 - 展示层实现增删改查-视图模型

    点这里进入ABP入门教程目录 创建视图模型 在展示层(即JD.CRS.Web.Mvc)的Models下新建文件夹Course //用以存放Course相关视图模型 在JD.CRS.Web.Mvc/Mo ...

  10. ABP入门教程11 - 展示层实现增删改查-视图

    点这里进入ABP入门教程目录 创建目录 在展示层(即JD.CRS.Web.Mvc)的Views下新建文件夹Course //用以存放Course相关视图 创建视图 在JD.CRS.Web.Mvc/Vi ...

随机推荐

  1. Copy 进阶用法

    Copy 进阶用法 本文出处:https://www.modb.pro/db/239809 copy 是最基础的导入导出命令,那么它有什么其他用法可以帮助我们更好地进行导入导出的工作呢? 关于导入方式 ...

  2. Blocks—单调栈

    思路: 题目意思是求平均数>=k的最长序列先求出a[i]-k的前缀和就是求sum[i]-sum[j]>=0的最大i-j当j<=k<=isum[j]<=sum[k]j< ...

  3. HTC vive开发:关于手柄按键对接控制

    一.关于左右手柄的对应关系 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个) 在场景 ...

  4. css 文字溢出省略号

    前言 css 文字溢出后显示省略号,这是一个非常常规的操作,但是你会发现在网上很多给出的例子两行之后显示省略号,却没有用. 这是为什么呢?please look follow. 正文 在一行省略的: ...

  5. docker containerd runc containerd-shim等组件的关系

    早期 kubelet 创建容器工作原理 因为 docker 出生的比 k8s 早,所以 k8s 早期的容器运行时都是基于 docker 的,kubelet 通过 docker 的 api 创建容器.后 ...

  6. -source 1.5 中不支持 diamond 运算符(中文版idea)

    -source 1.5 中不支持 diamond 运算符(中文版idea) 将idea中的各个部分的jdk设为8即可,中文版的如下 1.文件-设置 2.项目上右击-打开模块设置 模块中每一个都要确认是 ...

  7. Cloudera Manager 术语和架构

    ​简介: 本文介绍了Cloudera Manager 的常见术语和架构 Cloudera Manager 术语 为了有效地使用Cloudera Manager,您应该首先了解其术语. 术语之间的关系如 ...

  8. [FAQ] 你所看过的 APP 流氓提示语有哪些

    分享案例来自产品:网抑云. 当你要进行一些常规操作,比如评论时,进行弹窗伺候: |----------------------| |       | |   为提高您的账号安全性,请先绑定手机号   ...

  9. [Cryptocurrency] (XMR) Monero GUI 连接远程节点 操作方式

    Monero 官网下载的钱包,在 高级设置 的节点里支持 "本地节点" 和 "远程节点". 本地节点就是同步区块链数据到本地电脑,安全性高,占用空间大. 远程节 ...

  10. WPF 全屏窗口将让 Chrome 97 视频停止播放

    无论是使用 WPF 全屏窗口,还是高性能全屏透明窗口,都会在 Chrome 97 以及使用 chromium 对应版本内核的应用的视频停止播放.这是 chromium 的一个优化,因为 chromiu ...