Django框架中使用drf框架开发

news2024/12/22 19:39:47

一、drf框架特点:

  • 全称 Django REST framework   
  • 两大部分:序列化/反序列化  和  增删改查
  • 序列化:把数据库数据提取出来变成python常用格式的过程
  • 反序列化:把数据写入到数据库的过程
  • 增加 : 校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回 
  • 删除:判断要删除的数据是否存在 -> 执行数据库删除
  • 编辑:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
  • 查询:查询数据库 -> 将数据序列化并返回
  • 序列化/反序列化:Serializer 方法  提供了很多牛逼的方法

二、drf框架使用:

  • 下载安装:pip3 install djangorestframework -i https://pypi.douban.com/simple
  • 配置:下载后在Django框架中的settings文件的INSTALLED_APPS中增加‘rest_framework’应用
  •  创建序列化器文件:serializers.py,在最好是在自己的应用下创建该文件,如我的事myapp目录,并输入如下内容
from rest_framework import serializers
from myapp.models import *


class DB_CASE_Serializer(serializers.ModelSerializer):
    class Meta:
        model = DB_CASE # model.py中的具体的表名
        fields = '__all__' # 代表该表的所有字段都遵循drf规则
  • 回到views.py中,新建该表的视图函数
from rest_framework.viewsets import ModelViewSet
from myapp.serializers import *


class DB_CASE_ViewSet(ModelViewSet):
    queryset = DB_CASE.objects.all()  # 查询集
    serializer_class = DB_CASE_Serializer #序列号器
  • 去urls.py中设置自动路由
from rest_framework.routers import DefaultRouter


router = DefaultRouter()  # 可以处理视图的路由器
router.register(r'db_case', DB_CASE_ViewSet)  # 向路由器中注册视图集,db_case就是具体的路由,DB_CASE_ViewSet是view.py中的视图函数,后续想增加新的路由,只需要复制这一行改下路由和视图函数就行
urlpatterns += router.urls  # 将路由器中的路由信息追到到django的路由列表中

三、drf框架调试

  • 启动服务,浏览器上进入127.0.0.1:8000/db_case ,可以看到调试的页面 
  • 返回体格式符合预期,底部post请求可以添加新的数据
  • 进入路由 /db_case/1 可以访问具体单一的数据
  • 底部输入字段触发put请求可以修改该条数据内容
  • 具体数据点击delete按钮可以删除

至此,drf自动搭建完成,后续可以通过以下请求 进行增删改查:

查全部 :/db_case GET

查单独:/db_case/1 GET

修改: /db_case/1 PUT

新增: /db_case POST

删除: /db_case/1 DELETE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenWrt编译自己的应用程序

编译OpenWrt的应用程序可以参考OpenWrt内部其他应用程序的例程,来编写成自己的应用程序 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码: git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update…

2023年Tik Tok在印尼的市场分析,怎么开通海外娱乐公会?

2023年 印尼的TIKTOK用户 字节跳动广告资源发布的数据显示,到2023年初,TikTok在印度尼西亚有1.099亿18岁及以上的用户。 字节跳动的数据显示,2023年初,抖音广告在印尼18岁及以上的成年人中占56.8%。 与此同时,今年年…

2022年09月 C/C++(八级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程(1~8级)全部真题・点这里 第1题:道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为该路付的通行费(以金币的数目来表示) Bob and Alice 过去住在城市 1.…

msvcr120.dll找不到是什么原因

今天,我将为大家分享关于电脑msvcr120.dll丢失的6种不同解决方法。希望这些方法能够帮助到正在面临这个问题的朋友们。 首先,让我们来了解一下msvcr120.dll是什么文件。msvcr120.dll是Microsoft Visual C 2012 Redistributable Package的一个组件&#x…

CMA和CNAS的区别?

测试资质 一、定义不同CMA:即实验室资质认定,也称为计量认证。它是根据《中华人民共和国计量法》、《中华人民共和国认证认可条例》等有关法律法规,对向社会提供公证数据的检验机构进行强制性检查的一种方式,是政府对第三方实验室…

浏览器中怎样查看前后端传值

路径:F12–>Network -->Fetch/XHR,选择一个接口地址。 在payload里面是前端发送给后端的参数。也即客户端发送给服务端的请求数据,即接口地址入参。 Preview和Response里都是后端返回给前端的。Preview是格式化过的,比较容易看。Resp…

Seata 解决分布式事务理论与实践

文章目录 1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题 2.理论基础2.1.CAP定理2.2.BASE理论2.3.解决分布式事务的思路 3.初识Seata3.1.Seata的架构3.2.部署TC服务3.3.微服务集成Seata3.3.1.引入依赖3.3.2.配置TC地址3.3.3.其它服务 4.动手实践4.1.XA模式…

合并两个有序链表(每日一题)

“路虽远,行则将至” ❤️主页:小赛毛 ☕今日份刷题:合并两个有序链表 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1: 输入:l1 …

GeoServe Web 管理界面 实现远程访问

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…

系统错误码指示确立+日志模块手动配置

1,系统错误码指示确立 对于前后端分离的系统设计中,后端建立错误码指示对于前端非常重要可以指示错误存在地方;以用户注册为例; public interface SystemCode{int SYSTEM_USER_ERROR_ADD_FAIL 10000;int SYSTEM_USER_INFO_ADD …

C#,《小白学程序》第十四课:随机数(Random)第一,几种随机数的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十四课&#xff1a;随机数&#xff08;Random&#xff09;第一&#xff0c;几种随机数的计算方法与代码 /// 本课初步接触一下随机数。 /// </summary> /// <param name"sender"></param> ///…

《TCP/IP网络编程》阅读笔记--地址族和数据序列

目录 1--IP地址和端口号 2--地址信息的表示 3--网络字节序与地址变换 4--网络地址的初始化与分配 5--Windows部分代码案例 1--IP地址和端口号 IP 地址分为两类&#xff1a; ① IPv4 表示 4 字节地址族&#xff1b; ② IPv6 表示 16 字节地址族&#xff1b; IPv4 标准的 4 …

Svelte状态管理——svelte/store模块的使用

目录 前言 一、项目中使用示例 1. 创建全局状态 2. 在组件中使用全局状态 3. 便捷使用技巧$ 二、api介绍 1. writable 2. readable 3. derived 前言 在 Svelte 中&#xff0c;可以使用其自带的svelte/store模块来管理全局的应用程序状态&#xff0c;该模块导出用于创…

大出所料,9月1号前上线的小游戏却收到了补充备案材料的通知

引言 前阵子工信部发布了《工业和信息化部关于开展移动互联网应用程序备案工作的通知》&#xff0c;为此&#xff0c;微信公众平台ICP代备案管理系统提供新增备案、变更备案、注销备案等服务&#xff0c;协助开发者更好更方便地完成微信小程序备案&#xff0c;届时所有9月1号后…

HTML 标签讲解

HTML 标签讲解 HTML 语言结构根元素元数据元素主体根元素大纲元素文本内容语义化内联文本图像与多媒体编辑标识table表格内容表单内容table表单 HTML 语言结构 Markup &#xff08;标记、标签&#xff09;用来容纳和描述内容 严格意义上&#xff0c;标签是指开始标签&#xf…

PMC在制造企业中发挥哪些价值?

导 读 ( 文/ 2127 ) PMC(生产计划与物料控制)是制造企业运行的核心&#xff0c;PMC的好坏可以直接影响客户的需求交付、生产进行的顺利与否、库存资金的占用、企业效率的提升等&#xff0c;在制造企业中起着关键的作用。它负责将生产计划转化为实际的生产活动&#xff0c;并确保…

Mavan进阶之多模块(聚合)

文章目录 Maven 多模块&#xff08;聚合&#xff09;非父子关系的多模块项目 Maven 多模块&#xff08;聚合&#xff09; Maven 继承和聚合是 2 个独立的概念。工程与工程之间可能毫无关系&#xff0c;也可能是继承关系&#xff0c;也可能是聚合关系&#xff0c;也可能既是继承…

QT数据库,实现数据库增删改查

QT关于数据库的相关概念 QT将数据库分为三个层次&#xff1a; 数据库驱动层&#xff1a;QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin sql接口层&#xff1a;QSqlDatabase、QSqlQuery、QSqlRecord、QSqlError 用户接口层&#xff1a;提供一些模…

算法训练 第一周

一、合并两个有序数组 本题给出了两个整数数组nums1和nums2&#xff0c;这两个数组均是非递减排列&#xff0c;要求我们将这两个数组合并成一个非递减排列的数组。题目中还要求我们把合并完的数组存储在nums1中&#xff0c;并且为了存储两个数组中全部的数据&#xff0c;nums1中…

创建具有管理员权限的快捷方式

参考 https://zhidao.baidu.com/question/86334639.html