首页
学习
活动
专区
圈层
工具
发布

【愚公系列】2022年04月 Python教学课程 74-DRF框架之过滤

4.3 嵌套查找 4.4 参数说明 4.5 自定义过滤器 一、普通过滤 REST 框架的通用列表视图的默认行为是返回模型管理器的整个查询集。...1.针对当前用户进行筛选 您可能希望筛选查询集,以确保仅返回与发出请求的当前经过身份验证的用户相关的结果。 为此,可以基于用户值进行筛选。...框架还包括对通用筛选后端的支持,这些后端允许您轻松构造复杂的搜索和筛选器。...'django_filters', ... ] REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...搜索参数可能包含多个搜索词,这些搜索词应以空格和/或逗号分隔。如果使用多个搜索词,则仅当所有提供的词都匹配时,才会在列表中返回对象。 搜索行为可能会因在 前面加上各种字符而受到限制。

2.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DRF框架学习(四)

    DRF框架学习(四) 1.视图集对象的action属性 作用: 获取现在要执行的是哪一种操作。 self.action:是字符串类型,目的是获取所有执行的操作。...需要提取参数detail改为True,不需要提取参数的时候改为False DefaultRouter与 SimpleRouter的区别是, DefaultRouter会多附带一个默认的API根视图,返回一个包含所有列表视图的超链接响应数据...6.1.1 可选限流类 6.1.1.1 AnonRateThrottle 限制所有匿名未认证用户,使用IP区分用户。...pass 7.过滤 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。...ordering参数,如果包含了ordering参数,则按照ordering参数指明的排序字段对数据集进行排序。

    3.3K40

    Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本的配置,所有接口的代码,项目代码已给

    目录 需求 创建一个Django项目 配置基础东西 连接mysql 使用Django_rest 解决跨域 建模(model里面写实体类) admin.py文件里面的创建 手动在后台管理系统里面添加相关数据...还有收货地址模块 创建一个Django项目 用pycharm直接创建一个Django项目 配置基础东西 连接mysql 使用Django_rest 解决跨域 第一步 第二部 第三部...(self): # 这个就是rest框架的方法,不能变,就是定义查询的范围的,获取查询级 category=self.request.query_params.get('category...框架自带 配置完成,进行生成数据库迁移 数据库里面会生成 就会多一个这个,配置文件里面,多加这个 REST_FRAMEWORK = { # 新版本必须写下面的话 'DEFAULT_PAGINATION_CLASS...(self): # 获取特定的结果集 筛选 user=self.request.user queryset=Order.objects.filter(user=user,

    3K10

    Python Django性能测试与优化指南

    虽然本文是以Django为例,但其他框架和语言的优化原则也是类似的。通过使用这些优化方法,文中例程的查询响应时间从原来的77秒减少到了3.7秒。 ?...1.2 仅提供相关的数据 默认情况下,Django会从数据库中提取所有字段。但是,当表有很多列很多行的时候,告诉Django提取哪些特定的字段就非常有意义了,这样就不会花时间去获取根本用不到的信息。...Django可以使用defer()和only()这两个查询方法来实现这一点。第一个用于指定哪些字段不要加载,第二个用于指定只加载哪些字段。...代码优化 你不能无限制地优化数据库查询,并且上面的结果也证明了这一点。即使把查询时间减少到0,我们仍然会面对需要等待半分钟才能得到应答这个现实。...Django REST框架非常棒,包含了很多有用的功能。但是,现在的主要目标是缩短响应时间,所以该框架是优化的候选对象,尤其是我们要使用的序列化对象这个功能非常的简单。

    95230

    django-rest-framework框架学习

    前后端分离方式有许多好处,比如 1、可以前后端并行开发,提高开发效率 2、页面都在客户端进行渲染,提高了渲染速度,减小了服务器的压力 3、一套api提供给多个客户端使用,而且不限制客户端的类型(web,...中很著名的一个框架是django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework...model = Student fields = ('id', 'student_id', 'name', 'age') 其他相关的参数可以查阅官方文档,都有详细的介绍 这里我们只简单的显示所有的字段...实现视图api类 官方文档: http://www.django-rest-framework.org/api-guide/generic-views/ 在这里只需要继承相关的类,复写父类方法即可...请注意,使用超链接的API时,您需要确保双方的API意见和串行类设置查找字段,如果你需要使用一个自定义值 在get_queryset()中实现的是按照name查询的,因为很多时候客户端并不知道自己的id

    1.6K10

    Django模型model

    : 根据对象的类型生成数据库表结构 将对象、列表的操作,转换为sql语句 将sql查询到的结果转换为对象、列表 Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表 ORM.png 2....会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式,不允许使用连续的下划线...实例表示的日期和时间,参数同DateField FileField:一个上传文件的字段 ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image...AutoField:一个根据实际ID自动增长的IntegerField,通常不指定 如果不指定,一个主键字段将自动添加到模型中 BooleanField:true/false 字段,此字段的默认表单控制是...模型类的查询 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句

    1.1K10

    第 7 篇:文章详情的 API 接口

    贴心的是,django-rest-framework 已经帮我们把 retrieve 的逻辑在 mixins.RetrieveModelMixin 里写好了,直接混入视图集即可: class PostViewSet...get_object 方法通常情况下依据以下两点来筛选出单个资源对象: get_queryset 方法(或者 queryset 属性,get_queryset 方法返回的值优先)返回的资源列表对象。...lookup_field 属性指定的资源筛选字段(默认为 pk)。django-rest-framework 以该字段的值从 get_queryset 返回的资源列表中筛选出单个资源对象。...文章详情 Serializer 现在,假设我们要获取 id 为 1 的文章资源,访问获取单篇文章资源的 API 接口 http://127.0.0.1:10000/api/posts/1/,得到如下的返回结果...因为展示文章列表数据时,有些字段用不上,所以出于性能考虑,只序列化了部分字段。

    1.2K30

    使用 Django 的 admin 定制后台,丰富自己网站的后台管理系统

    使用 xadmin Django 自身带有一个功能强大的后台管理系统,这算是 Django 与其他的 Python 的 web 框架相比最大的一个优势吧!...,只能看到自己编辑的文章 def get_queryset(self, request): qs = super(ArticleAdmin, self).get_queryset...fields 属性是与 exclude 属性相对的字段,这个字段包含的是需要在后台显示的模型字段,所以一般他们不同时出现。...不设置这个字段的时候默认是第一个字段添加 标签。...: 重写函数 除了可以重新定义默认的属性,还可以重写管理类的函数,这个很好理解,如下代码我重新定义了一下用户的查看权限: # 限制用户权限,只能看到自己编辑的文章 def get_queryset(self

    3.8K10

    重点内容回顾-DRF

    在django.db.models中包含了可选的常量,常用的有三种: a.CASCADE级联,删除主表数据的时候,连同删除外键表中的数据。这个就有点狠了,按需求慎用。...request.data保存的是解析之后的请求体的数据,并且已经解析成了字典或类字典,相当于包含Django原始request对象中的request.body/request.POST/request.FILES...可以进行DRF框架默认全局权限设置,也可对其进行修改,还可以指定某个视图的权限控制设置,甚至可以自定义权限控制类。权限和认证通常是一起使用的。 限流:注意,是对用户访问API接口频次进行限制。...过滤:需要先安装django-filter并进行注册设置,再在视图中通过 filter_fields设置过滤字段。...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词

    3K20

    django优雅的实现软删除,支持Admin和DRF的软删除

    只是在字段上设置了一个值,表示数据已经被删除。 需要解决的问题 DRF 暴露DELETE方法一旦被执行,就需要操作软删除,把is_deleted字段设置为True。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)中操作数据库的能力...其实你在项目中无时不刻不在使用Manager,还记得objects吗?也就是如:Book.objects.all()中的objects。有没有想过它到底是什么?...class ModelManager(models.Manager): # 重写get_queryset方法 def get_queryset(self): # 查询出所有的数据...(DeleteQuerySet)() objects_all = models.Manager.from_queryset(DeleteQuerySet)() # views.py from rest_framework.viewsets

    2.8K40

    DjangoRESTframework(补充)

    fields 指明该序列化器包含的模型类中有哪些字段,’all’指明包含所有字段 2....,需要包含 read_only=True 或 queryset参数 包含 read_only=True 参数时,该字段将不能用作反序列化使用 包含 queryset 参数时,将被用作反序列化时参数校验使用...验证失败,可以通过序列化器对象的 errors 属性获取错误信息,返回一个字典, 包含字段和字段的错误,若是非字段错误,可以通过修改 REST framework 配置中的 NON_FIElD_ERRORS_KEY...指定字段 1) 使用fields来明确字段,all表名包含所有字段,也可以写明具体哪些字段,如 class BookInfoSerializer(serializers.ModelSerializer...APIView是REST framework提供的所有视图的基类,继承自Django的View父类。

    2.6K30

    美多商城项目(五)

    你敢说你不羡慕那些物质优渥的人吗?你敢说你不想超越身边的某个人吗?你只是怕努力之后没有得到想要的,你只是怕最后的结果是你比不过某个人。然后就谎称你不想、谎称不屑于去做,自居清高,实则是懦弱,逃避。...并且在查询出数据,返回结果之前,先将查询的结果存到缓存中,便于下次使用。 2.2使用缓存 在Django REST framework中使用缓存,可以通过 drf-extensions扩展来实现。...因为我们需要的字段有点多,我们可以不用field指定字段,而是使用exclude排除我们不需要的几个字段即可。...4.4.3C/S模型 Docker客户端只需向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并且返回结果。...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词 重点内容回顾-DRF

    1.4K30
    领券