Django Rest Framework动态获取字段

简介: 项目名称 drf-dynamic-fields 项目描述 提供了一个mixin,用于serializer,实现动态配置返回字段的效果。在获取数据的API的时候,在URL中加入一个查询字段fields,用来过滤返回数据的字段,减少网络传输的数据。

项目名称

  • drf-dynamic-fields

项目描述

  • 提供了一个mixin,用于serializer,实现动态配置返回字段的效果。在获取数据的API的时候,在URL中加入一个查询字段fields,用来过滤返回数据的字段,减少网络传输的数据。
  • github地址:https://github.com/dbrgn/drf-dynamic-fields

安装

pip install drf-dynamic-fields
  • 如果不想在项目中多加一个库,也可以直接将项目中drf_dynamic_fields目录下的init.py文件中的类直接复制出来到自己的项目中。 直接下载init文件 -->点这里

配置

  • 在创建serializer的时候,把DynamicFieldsMixin这个mixin加上即可。
  • 下面的代码是一个示例,我们创建了一个BookSerializer,加入了DynamicFieldsMixin。

    from rest_framework import serializers
    from drf_dynamic_fields import DynamicFieldsMixin
    from .models import Book
    
    class BookSerializer(DynamicFieldsMixin, serializers.ModelSerializer):
        class Meta:
            model = Book
            fields = '__all__'

然后,就可以直接用了~


使用

  • 我们可以在url中使用fields来指定要返回的字段,例如我们在查询中仅需要获取图书的书名(name)和作者(author),那么URL可以写成这个样子,多个字段间使用逗号分隔即可:

    GET https://wxy.email/book/?fields=name,author
  • 对于获取单条信息的查询也同样好使:

    GET https://wxy.email/book/666/?fields=name,author
  • 如果我们仅仅需要某些字段不显示,则可以使用omit参数省略一些字段,例如我们在查询中其他的信息都要,但是图书描述信息字段(description)不要,那么我们可以把URL写成这个样子:

    GET https://wxy.email/book/?omit=description
  • 参考信息: 作者在github项目中实际上说到为了保持项目的简单,实际上已经不再接受新需求的添加了。
  • 如果需要更强大的字段动态获取功能,则可以参考这个项目https://github.com/rsinger86/drf-flex-fields
  • 参考链接:时光不写博客-Django Rest Framework 动态获取字段
  • 本文转载自:knktc
相关文章
|
2月前
|
数据库 Python
django中的models.ManyToManyField 字段如何新增,通过Category,如何反向查询Product
django中的models.ManyToManyField 字段如何新增,通过Category,如何反向查询Product
60 10
|
4月前
|
存储 数据库 开发者
Django Web架构:全面掌握Django模型字段(下)
Django Web架构:全面掌握Django模型字段(下)
59 2
|
4月前
|
JSON API 数据安全/隐私保护
哇塞!Django REST framework 太逆天啦!构建 API 服务从未如此轻松,你还不来试试?
【8月更文挑战第31天】Django REST framework(DRF)是基于Django框架的高效Web API开发工具,提供序列化、视图集、路由等功能,简化API构建流程。使用DRF可轻松实现数据的序列化与反序列化,并支持权限管理和认证机制以保障API安全。安装DRF只需通过`pip install djangorestframework`命令。要创建基本项目,先安装Django并创建新应用,定义模型、序列化器及视图集,最后配置路由。测试API时,可通过Postman发送HTTP请求验证功能。无论项目大小,DRF均能提供强大支持。
46 0
|
4月前
|
中间件 API 网络架构
Django后端架构开发:从匿名用户API节流到REST自定义认证
Django后端架构开发:从匿名用户API节流到REST自定义认证
46 0
|
4月前
|
存储 数据处理 数据库
Django Web架构:全面掌握Django模型字段(上)
Django Web架构:全面掌握Django模型字段(上)
49 0
|
6月前
|
安全 API 数据安全/隐私保护
Django REST framework安全实践:轻松实现认证、权限与限流功能
Django REST framework安全实践:轻松实现认证、权限与限流功能
|
6月前
|
安全 API Python
Django 如何使用视图动态输出 CSV 以及 PDF
这一篇我们需要用到 python 的 csv 和 reportLab 库,通过django视图来定义输出我们需要的 csv 或者 pdf 文件。
|
6月前
|
JSON 搜索推荐 数据库
Django REST framework数据展示技巧:分页、过滤与搜索的实用配置与实践
Django REST framework数据展示技巧:分页、过滤与搜索的实用配置与实践
|
6月前
|
JSON API 网络架构
Django REST framework视图集与路由详解:深入理解ViewSet、ModelViewSet与路由映射器
Django REST framework视图集与路由详解:深入理解ViewSet、ModelViewSet与路由映射器
|
28天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
139 45