Django视图写法
1.View:Django默认的视图基类,Django的HttpRequeset对象
2.APIView:REST-framework提供的所有视图的基类,继承自Django的View
REST framework的Request对象
Request对象的数据是自动根据前端发送数据的格式进行解析之后的结果。
serializer = BookSerializer(book,many=True) 序列化,获取字段
serializer.data 获取序列化后的数据
serializer = BookSerializer(data=data) 反序列化,传入字段
serializer.is_valid(raise_exception=True) 校验并返回错误
3.GenericAPIView:继承自APIView,增加列表视图和详情视图的通用方法和属性
https://blog.csdn.net/qq_31742423/article/details/83241461
属性:提前将要调用的设置好,方法中直接调用就可以
queryset 设置结果集 ~queryset = BookInfo.objects.all()
serializer_class 设置序列化器 ~serializer_class = BookSerializer
lookup_field 查询指定的对象,默认为'pk' ~lookup_field = 'id'
方法:
get_queryset(self) 返回视图使用的查询集 ~books = self.get_queryset()
get_serializer(self,_args, *_kwargs) 返回序列化器对象 ~serializer = self.get_serializer(book)
get_object(self) 返回详情视图所需的模型类数据对象 ~book = self.get_object()
# ListModelMixin 列表,获取全部对象
# CreateModelMixin 新增资源
# RetrieveModelMixin 索引,获取一个资源
# UpdateModelMixin 更新一个资源
# DestoryModelMixin 损毁,删除一个资源
调用的时候和GenericAPIView一样放在类的括号里,好像光放置首字母大写也可以
Patch 补丁,局部更新某一属性,user_name,Put方法的补充
4.三级视图(对GenericAPIView和Mixin的直接封装)
第3和4算是一种关系
mixins类,会返回不同的状态码
CreateAPIView 创造
ListAPIView 列表
RetrieveAPIView 检索
DestroyAPIView 损毁
UpdateAPIView 更新
ListCreateAPIView 列表创造
RetrieveUpdateAPIView 检索更新
RetrieveDestroyAPIView 检索删除
RetrieveUpdateDestroyAPIView 检索更新删除
导入封装的模型,通过下面就可以更加简洁
from rest_framework import mixins
class ProjectsView(mixins.ListModelMixin,
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
GenericAPIView):
# 增加所需属性
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
5.ViewSet:继承自APIView
router = DefaultRouter() 创建默认的本机地址
router.register(r'booklist',views.BookModelViewset)
会生成两种url
user/ 列表
user/3 详情
urlpatterns += router.urls 将建立好的url放在地址列表中
需要继承viewsets.ViewSet类
类的函数不需要使用get\post\delete等,可以自建其他函数,然后在路由中转
path('user/',view.MyViewSet.as_view({
'get':'list',
}))
https://zhuanlan.zhihu.com/p/72527077
序列化:将数据库的数据模型转化为前端所需要的格式(json等)
反序列化:可以验证传入数据是否规范并保存
反序列化:拿到前端数据->序列化器的data->调用序列化器的is_vaid()方法
校验->调用序列化器的.sava()方法保存
~~~url.py~~~
# viewsets
# 封装drf路由
from rest_framework.routers import DefaultRouter
# 创建路由器
router=DefaultRouter()
# 注册路由
router.register(r'user_model_view_set',views.UserModelViewSet)
# 将生成好的路由放在原路由
urlpatterns+=router.urls
~~~views.py~~~
# 这里使用的viewset
from rest_framework import viewsets
from rest1.serializers import UserModelViewSetSerializers
# ViewSet
class UserModelViewSet(viewsets.ModelViewSet):
queryset = UserInfo.objects.all()
serializer_class = UserModelViewSetSerializers
lookup_field = 'id'
~~~serializers.py~~~
# ModelSerializer
class UserModelViewSetSerializers(serializers.ModelSerializer):
# 定义序列化器
# class Meta做为嵌套类,主要目的是给上级类添加一些功能或者标准
class Meta:
# 指定序列化从那个模型映射字段
model=UserInfo
# 映射所有字段
fields='__all__'
# 填入指定字段
# fields = ('user_name', 'password')
# 除了这个字段
# exclude = ('user_name',)
# 含有外键的数据库,设置depth为整数,通常为1
相关文章:
Django视图写法
1.View:Django默认的视图基类,Django的HttpRequeset对象 2.APIView:REST-framework提供的所有视图的基类,继承自Django的View REST framework的Request对象 Request对象的数据是自动根据前端发送数据的格式进行解析之后的结果。 serializer Book…...
单臂路由实现不同VLAN之间设备通信
转载请注明出处 本实验为单臂路由配置,目的为让不同VLAN之间的设备能够互相通信。 1.首先,按照要求配置两个pc的ip地址,以pc0为例子: 2在交换机创建vlan10和vlan20 3.划分vlan,pc0为vlan10的设备,pc1为vla…...
Linux·进程控制(system V)
1. 共享内存 system V共享内存是最快的IPC形式,之前的管道是基于Linux内核开发的通讯方案,其读写接口都是现成的,因此内核设计者为了完成进程间通讯任务并不需要新增太多代码。而共享内存属于system V标准,是操作系统单独…...
华为云Stack名词解释
1、MRS MapReduce服务(MRS)是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的数据处理分析服务。 2、VBS 云硬盘备份服务(VBS,Volume Backup Service)可为云硬盘(EVS,Elastic…...
YoloV9改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
论文介绍 CARAFE模块概述:本文介绍了一种名为CARAFE(Content-Aware ReAssembly of FEatures)的模块,它是一种用于特征上采样的新方法。应用场景:CARAFE模块旨在改进图像处理和计算机视觉任务中的上采样过程࿰…...
【C++】多态的语法与底层原理
1.多态的概念 1.1 概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的状态。 举个例子:在现实当中,我们去火车站买票,一般都分三种情况&…...
RTP和RTCP的详细介绍及其C代码示例
RTP和RTCP的详细介绍及其C代码示例 RTP和RTCP简介RTP协议详解RTCP协议详解RTP和RTCP之间的关系C代码示例RTP和RTCP简介 RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)是流媒体传输中常用的两个协议。R…...
深入浅出了解AI教育发展与落地应用情况
2023年,是生成式AI能力涌现的一年,通用大模型是其中的主旋律。经过一年的发展,通用大模型格局已初步形成,生成式AI也从能力展示走向应用落地。进入2024年,对生成式AI的讨论和实践也都转向如何赋能产业。相比于通用大模型,进入产业内的大模型需要的是对行业的Know-How,以…...
Hive数据库操作语法
数据类型 内部表和外部表 内部表 (CREATE TABLE table_name ......)未被external关键字修饰的即是内部表, 即普通表。 内部表又称管理表,内部表数据存储的位置由hive.metastore.warehouse.dir参数决定(默认:/user/h…...
容器架构-Docker的成长之路
目录 1. 什么是容器 2. 容器 vs 虚拟机 3. Docker极速上手指南 环境准备 3.1 配置docker源 3.2 下载镜像加速的配置 3.3 下载自动补全工具 4. Docker C/S架构 5. Docker的镜像管理 5.1 下载nginx:alpine镜像并查看 5.2 sl大法 5.3 删除镜像 5.4 镜像清理用的命令 5…...
关于我、重生到500年前凭借C语言改变世界科技vlog.14——常见C语言算法
文章目录 1.冒泡排序2.二分查找3.转移表希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 根据当前所学C语言知识,对前面知识进行及时的总结巩固,出了这么一篇 vlog 介绍当前所学知识能遇到的常见算法,这些算法是…...
简记Vue3(三)—— ref、props、生命周期、hooks
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
ARM cpu算力KDMIPS测试
一、引言 KDMIPS(KiloDhrystone Million Instructions Per Second)是一种衡量处理器性能的指标,它表示处理器每秒钟可以执行多少百万条Dhrystone指令。 二、测试说明 1、将cpu模式调整为perfermance 2、将cpu的频率和gpu的频率调大最大 3、将ddr和各core的电压和频率调大最…...
自杀一句话木马(访问后自动删除)
在做安全测试时,例如文件上传时就要上传可以解析的脚本文件解析证明存在漏洞,这个时候就需要(访问后自动删除文件的一句话木马) PHP <?php echo md5(1);unlink(__FILE__); ?> 访问后自动删除...
Nginx 反向代理(解决跨域)
文章目录 前言一、同源策略二、跨域是什么?三、Nginx解决跨域1.前端示例代码2.说明 四、nginx反向代理配置五、启动nginx六、最终效果总结 前言 Nginx反向代理解决跨域 一、同源策略 定义:同源策略(Same-Origin Policy)是指浏览…...
gRPC-4种通信模式
4种通信模式 1、简单模式(Simple RPC) 简单模式:也称简单 RPC,即客户端发起一次请求,服务端响应处理后返回一个结果给客户端。 在 proto 文件中可如下定义: rpc SayHello(HelloRequest) returns (Hello…...
第五项修炼—系统思考
感谢合作伙伴的推荐,圆满结束为期两天的马上消费《第五项修炼—系统思考》项目!这不仅是一次培训,更是未来实践的起点。 两天的系统思考学习让我们看到,在技术管理的每个决策背后,都蕴含着深刻的系统关联。希望各位技…...
PYNQ 框架 - VDMA驱动 - 帧缓存
目录 1. 简介 2. 代码分析 2.1 _FrameCache 类定义 2.1.1 xlnk.cma_array() 2.1.2 pointerNone 2.1.3 PynqBuffer 2.2 _FrameCache 例化与调用 2.3 _FrameCache 测试 2.4 _FrameList 类定义 2.5 _FrameList 例化与调用 2.6 _FrameList 测试 3. 帧的使用 3.1 读取帧…...
Java导出Word文档的几种方法
文章目录 1. 使用 Apache POI2. 使用 Docx4j3. 使用 JODConverter4. 使用 FreeMarker 模板 在 Java 中导出 Word 文档可以通过多种库和方法实现。以下是几种常用的方法: 1. 使用 Apache POI Apache POI 是一个强大的库,可以用来读写 Microsoft Office 格…...
OceanBase V4.3.3,首个面向实时分析场景的GA版本发布
在10月23日举办的 OceanBase年度发布会 上,我们怀着激动之情,正式向大家宣布了 OceanBase 4.3.3 GA 版的正式发布,这也是OceanBase 为实时分析(AP)场景打造的首个GA版本。 2024 年初,我们推出了 4.3.0 版本…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
