在Django-rest-framework中post方法中过滤ListAPIView

Django REST framework核心开发与实战技巧 RESTful API是现代Web开发的核心技术架构,通过HTTP协议实现资源的状态转移。Django REST framework作为Python生态中最成熟的API开发工具包,其基于序列化器的数据转换机制和视图集(ViewSet)的抽象设计,大幅提升了开发效率。在微服务架构和前后端分离场景下,DRF的认证系统支持JWT/OAuth等标准协议,配合路由自动生成和OpenAPI文档集成,能快速构建企业级API服务。通过合理使用分页过滤、缓存限流等优化手段,可有效应对高并发场景。典型应用包括电商平台商品API 阅读详情

1:app客户端一般不会将token直接用get方法传递,这样token很容易被暴露,我们可以将token放到post方法里

2:当我们想根据用户的userid过滤掉列表信息时,我们可以根据token查询到用户userid,但有了userid后,即使我们已经filter类里有使用userid过滤条件,还是过滤不了信息的。

3:request会对url问号的字段进行格式化,格式化后的字段会保存在request.query_params里,当ListAPIView里有过滤对象时,过滤的字段也会从query_params里取

4:如果post方法也想过滤信息时,根据上面的原理,我们可以将根据token查询到用户的userid,然后把userid字段放到query_params里,后面的工作就会正常过滤了,代码如下:

def post(self, request):
    token = request.data["token"]
    userid = get_userid(token)

    query_mutable = request.query_params._mutable
    request.query_params._mutable = True
    request.query_params.__setitem__("userid", userid)
    request.query_params._mutable = query_mutable
    return self.list(request)

5:如果不想这么麻烦,也可以重写get_queryset方法,然后用userid进行过滤,过滤器里的userid条件也就可以去掉了

DRF入门指南:快速构建Django Web API Web API是现代应用开发的核心组件,实现前后端分离架构的关键技术。Django REST framework(DRF)作为Django生态中最强大的API开发工具包,通过序列化器(Serializer)和视图集(ViewSet)等核心机制,将复杂的API开发简化为声明式编程。其基于类的视图系统支持CRUD操作的快速实现,而内置的认证、权限和分页模块则解决了API开发中的共性难题。在移动应用后端、微服务接口等场景中,DRF能显著提升开发效率。本文以博客系统为例,演示如何通过ModelSerializer快 阅读详情

相关推荐

DRF面试核心解析与RESTful API开发实战

RESTful API是现代Web开发的核心技术范式,其基于HTTP协议的标准方法(GET/POST/PUT/DELETE)实现资源的增删改查操作。DRF(Django REST Framework)作为Python生态中最成熟的REST API开发框架,通过序列化系统实现数据转换验证,配合认证/权限组件保障接口安全。在电商、社交等应用场景中,DRF的CBV编程模式和丰富的第三方生态(如JWT认证、Swagger文档)显著提升开发效率。本文重点解析DRF的视图类继承体系、动态字段控制等高级特性,并针对面试高

weixin_30520015的博客 397

Django基于ListAPIView、序列化器Serializer完成多表联合查数据

Django基于ListAPIView、序列化器Serializer完成多表联合查数据 1.表与表之间有直接的关系 老师表与课程表 class CourseModelSerializer(serializers.ModelSerializer): """展示课程详细信息+老师信息+课时信息的序列化器""" # 方式一 teacher_name = serializers.CharField(max_length=32, source='teacher.name') cl

yangmingfu666的博客 1843

DRF视图与路由进阶:从APIView到ViewSet的优雅架构设计

在Web API开发中,视图和路由是处理请求与响应的核心组件,它们共同决定了API的结构与行为。理解其工作原理,对于构建可维护、可扩展的RESTful服务至关重要。视图负责封装业务逻辑,而路由则确保URL请求能准确分发到对应的处理单元。从基础的类视图到高级的视图集,DRF提供了一套完整的设计哲学和最佳实践工具箱,旨在提升代码的复用性和架构清晰度。通过掌握视图集与路由器的自动化映射,开发者能显著减少样板代码,将重心从“功能实现”转向“架构设计”。在实际应用中,结合认证、权限、过滤、分页等配置,可以构建出既健壮

weixin_33768481的博客 598

Django RESTful framework 学习记(一)

由于想做一个手机充电桩的项目, 而这个项目涉及数据库, 微信小程序, 而微信小程序需要后台给相应的api接口, 无奈的我api不会开发, 再此之前一直学了python, 而且用了django框架写过网站, 心想api不就是一个链接吗? 而网站也是一个链接, 只是返回的数据不一样, 我想api和网站间有联系吧, 后来进过百度, 知道了django就有框架专门写api, 那就是我接下来一段时间要学习的...

FourLeafCloverLLLS的博客 671

百度智能云训练图像分割模型+python调用模型并分割图像

目录 训练模型阶段 发布图像分割API 调用图像分割API 创建应用后显示以下两个代码 在pycharm中可以调用API mask解码 依赖库pycocotools安装步骤: 依赖库urllib2的安装 源码下载: 最近上课听老师介绍了一个训练图像分割模型的网站,把数据集上传之后做图像标注,然后进行训练就能得到准确率等指标。 训练模型阶段 图像分割:https://ai.baidu.com/easydl/vision/ 图像分割-->创建模型-->上传数据--&gt

icecreamdinner的博客 1388

Deep Reinforcement Learning - 1. DDPG原理和算法

Deep Reinforcement Learning - 1. DDPG原理和算法 背景描述 DDPG的定义和应用场景 DDPG算法相关基本概念定义 DDPG实现框架和算法 DDPG对于DPG的关键改进 下一篇 以下用RL作为Reinforcement Learning 的简称。背景描述概括来说,RL要解决的问

kenneth_yu的博客 14万+

某个接口去掉请求头的token

去掉请求头

qq_43748314的博客 1731

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5293

django—APIView详细讲解

一、APIView 1、继承APIView父类(Django中View的子类) a、具备View的所有特性 b、提供了认证、授权、限流等功能 c、一旦继承了APIView之后,request是DRF中Request对象 d、Request是HttpRequest继承上做了拓展 e、Request兼容HttpRequest所有功能 f、前端传递的查询字符串参数,GET、query_params g、前端传递application / json、application / x - www - form - u

python全栈 5706

ROS 2 Jazzy与Gazebo Harmonic仿真实战:从零搭建机器人仿真环境与高级应用

本文详细介绍了如何使用ROS 2 Jazzy和Gazebo Harmonic从零搭建机器人仿真环境,涵盖环境配置、传感器集成、多机器人协同和GPU加速优化等高级应用。通过实战案例和性能调优技巧,帮助开发者高效构建可靠的机器人仿真系统,提升开发效率。

h9j8k7l6m5n的博客 1217

峰值电流模式CCM BUCK的传递函数推导

电流内环闭环传递函数: Gci(s)=i^L(s)v^comp(s)=FmGid(s)1+KRiHe(s)FmGid(s)=1Ri11+s[mcL+(0.5VIN−Vo)RiVINRifSW]+s21(πfSW)2 G_{ci}(s)=\frac{\hat i_{L}(s)}{\hat v_{comp}(s)}=\frac {F_mG_{id}(s)}{1+KR_iH_e(s)F_mG_{id}(s)}=\frac{1}{R_i}\frac{1}{1+s[\frac{m_cL+(0.5V_{IN}-V_o)

c007106333的博客 2354

使用Django REST framework的高级过滤功能进行数据筛选

Django REST framework提供了多种内置的过滤器,如SearchFilter、OrderingFilter等,这些过滤器可以帮助你快速对数据进行搜索和排序。Django REST framework与django-filter库结合使用,可以提供更灵活和强大的过滤功能。通过以上方法,你可以在Django REST framework中实现各种高级过滤功能,以满足不同的数据筛选需求。对于需要根据范围值进行过滤的情况,可以使用django_filters提供的RangeFilter类。

qq_75046142的博客 574

STM32F103VCT6+W5500 TCP 服务端通信

STM32F103VCT6 W5500的TCP连接通讯的程序

坚韧与专注 7815

Django Rest Framework的使用整理

Django Rest Framework 一、Rest Framework的基本介绍 程序的客户端有很多:硬件设备,游戏,APP,软件,其他的外部服务端。 1. Web应用模式 在开发Web应用中,有两种应用模式: 前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。] 这种情况下,前端页面中会出现很多涉及到服务端的模板语法。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-neat7OGD-1610381584965)(E:/Download/8-3

有用的话关个注,点个赞,收个藏🫶。 1506

【ESP32CAM+Android+OpenCV】自定义目标数据集、训练自己的OpenCV模型部署到手机APP并对ESP32CAM无线图传显示并实时检测识别目标_资料编号30

本项目实现自定义目标数据集(想检测什么就检测什么,按照本文教程自己来更换目标)、训练自己的OpenCV模型实时检测识别(pycharm工程)。手机APP(Android studio工程)部署OpenCV模型实现对ESP32CAM(arduino工程)无线WIFI图传过来的图像实时检测识别。 本文以火焰检测识别为例进行演示,通过该过程,结合本文可自定义尝试更换为其它目标的检测,例如更换为车辆、车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人、口罩、行为、水果、植物、农作物、建筑、损伤等等部署进行检测。

嵌入式阿齐Archie 3478

INFFUS 2025 | DDBFusion:基于双重分解和贝塞尔曲线的统一图像分解与融合框架

现有的图像融合算法大多集中于网络架构和损失函数的设计,采用统一的特征提取策略,却忽略了冗余信息和有效信息的划分。然而,对于互补信息而言,统一的特征提取器可能并不适用。因此,本文提出了一种基于贝塞尔曲线图像增强和分层分解的统一图像融合算法,并构建了一个自监督学习任务来学习有意义的信息。其中,贝塞尔曲线旨在模拟不同的图像特征,并构建特殊的自监督学习样本,因此作者的方法不需要特定任务的数据,并且可以在公共自然图像数据集上轻松进行训练。同时,作者的双重分解自监督训练方法可以为模型赋予冗余信息过滤能力。

小白学视觉 306

Django REST Framework 从入门到精通

本文是Django REST Framework(DRF)的完整学习指南,从基础到进阶全面讲解DRF的核心功能。主要内容包括: 基础概念:介绍DRF的作用、核心能力(序列化、视图、路由等)和优势。 环境配置:详细说明安装步骤和项目配置方法,包含JWT认证、过滤等扩展功能的集成。 快速入门:通过图书管理API示例,演示如何: 定义数据模型 创建序列化器 实现增删改查视图(使用generics类) 配置URL路由 完整学习路线:提供20个核心主题的学习目录,涵盖认证权限、分页过滤、限流、文件上传、API文档等高

qq_30903893的博客 337

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Django Rest framework基础使用之View:APIView, mixins, generic, viewsets

先看一张图,对DRF的各个APIView,Mixin,Viewset等有个基本印象: 具体使用方法: 1、APIView:   DRF 的API视图 有两种实现方式:   一种是基于函数的:@api_view   一种是基于类的:APIView,APIView是Restframework提供的所有视图的基类,继承自Django的View父类   1)@api_view ...

aimiandai4698的博客 804

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

django-rest-framework学习笔记

## RESTful -软件架构风格,是一种思想 -用在客户端和服务端这种模型中 -实现的就是前后端分离 -理解 -表现层状态转换 -表征性状态转移 -缺少主语 资源(resource) -客户端要实现状态转换 通过请求谓词 -GET -POST -PUT -DELETE -PATCH **-api设计原则** -协议http(s) -专属域名或前缀 -可以...

Archi_gakki的博客 354

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

django rest framework 中的 GenericAPIView 的属性和方法的相应功能

args, **kwargs) - 返回一个序列化器实例。默认使用serializer_class属性创建一个序列化器,并传递给它。

lgyt240054的博客 693

DRF框架入门:构建RESTful API的完整指南

RESTful API是现代Web开发的核心技术,它基于HTTP协议实现资源的状态转移。Django REST Framework(DRF)作为Django生态中最成熟的API开发框架,通过序列化器、视图集和路由等核心组件,大幅简化了API开发流程。序列化器实现了数据转换与验证,通用视图类封装了常见CRUD操作,而认证权限系统则保障了接口安全。这些特性使DRF特别适合开发需要精细权限控制的企业级API,如电商平台的后台管理系统或内容管理系统的数据接口。通过django-filter等扩展还能轻松实现复杂数据

weixin_33947521的博客 328

DRF生命周期

自定义 DRF ListAPIView 响应样式 在 Django REST Framework 中,可以通过多种方式自定义 ListAPIView 的返回样式: 自定义分页响应 - 继承 PageNumberPagination 重写 get_paginated_response 方法 class CustomPagination(PageNumberPagination): def get_paginated_response(self, data): return Response({ 'succes

god_wen的博客 872

Python+Django+Vue.js构建新能源汽车数据分析与推荐系统

大数据技术在汽车行业的应用正从传统的数据分析向智能化推荐系统演进。基于内容推荐和协同过滤等核心算法原理,系统能够通过分析用户行为和车型特征数据,实现精准的个性化推荐。这种技术方案在电商、内容平台等领域已有成熟应用,而在新能源汽车领域,结合Django框架的数据管理能力和Vue.js的可视化优势,可以构建具备数据看板、车型对比和智能推荐功能的完整系统。通过Python+Django+Vue.js技术栈的工程实践,开发者能够掌握从数据采集、处理到可视化展示的全流程开发技能,为构建商业选车平台或行业分析工具奠定基

weixin_33928137的博客 299

DRF视图与路由深度解析:从APIView到ViewSet的RESTful API构建实践

在Web开发领域,RESTful API已成为前后端分离架构中数据交互的核心标准。其原理基于HTTP协议的无状态性和标准方法(GET、POST等),通过定义清晰的资源端点来实现数据的增删改查。这一设计模式的技术价值在于提供了统一、可预测的接口规范,极大地提升了系统的可维护性和扩展性。在Python生态中,Django REST framework(DRF)作为构建RESTful API的强大工具包,通过其视图与路由系统,将这一理念高效落地。DRF的视图体系,特别是ViewSet和路由器(Router),封装

weixin_33730836的博客 434

Django+微信小程序构建校园资讯与表白墙系统

校园信息系统开发中,Django框架与微信小程序的结合成为主流技术方案。Django凭借其强大的ORM系统和admin后台,能快速构建RESTful API服务;微信小程序则提供天然的移动端入口和社交传播能力。这种架构特别适合需要即时性、匿名性和内容审核的校园应用场景,如资讯共享平台和表白墙系统。通过Django REST Framework实现前后端分离,结合Redis缓存和MySQL优化查询性能,同时利用微信小程序的WebSocket能力实现实时消息通知。在校园信息化建设中,此类系统能有效解决传统信息平

weixin_33829657的博客 410

DRF核心知识点与面试题深度解析

RESTful API是现代Web开发的基础架构,通过HTTP协议实现资源操作。其核心原理包括资源导向的URL设计、标准化的HTTP方法语义(GET/POST/PUT/DELETE)以及状态码规范。在Python技术栈中,Django REST framework(DRF)作为最成熟的RESTful框架,提供了序列化器、视图组件和认证系统等核心功能模块。特别是在前后端分离架构中,DRF的序列化器能高效处理数据转换与验证,而JWT认证方案则解决了分布式系统的身份验证问题。实际工程中,开发者需要掌握DRF的查询

weixin_33693070的博客 467
上一篇: python获取实例对象的类名
下一篇: ts引用js文件
springleaf3000
博客等级 码龄14年 13粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值