首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python测试开发django-169.过滤器django-filter 入门使用

前言 在管理后台查询的时候,经常有需要查询包含某个内容,按时间段查询,或者商品价格大于多少,小于多少各种查询条件。 django-filter 过滤器专门解决这种查询的问题。...python:3.5、3.6、3.7、3.8 django:2.2、3.0、3.1 DRF : 3.10+ 简单入门 Django-filter 提供了一种基于用户提供的参数过滤查询的简单方法。...,默认查询全部,可以根据name/price/release_date查询 该form属性包含一个普通的 Django 表单,当我们遍历 时,FilterSet.qs我们会得到结果查询集中的对象。...过滤器查找类型“精确”是隐式默认值,因此永远不会添加到过滤器名称。在上面的示例,发布日期的确切过滤器是`release_date`,而不是`release_date__exact`。...这可以被 FILTERS_DEFAULT_LOOKUP_EXPR 设置覆盖。

2.2K20

第 9 篇:实现分类、标签、归档日期接口

具体来说,获取博客文章发表时间归档列表的方法是调用查询(QuerySet)的 dates 方法,提取记录的日期。...既然要使用它,当然是先安装它(已安装跳过):pipenv install django-filter 接着我们来配置 PostViewSet,设置用于过滤返回结果的一些属性,代码如下: from...的 filter 方法对 get_queryset 方法返回的结果进行进一步的过滤,而 DjangoFilterBackend 会依据 filterset_class(这里是 PostFilter)定义的过滤规则来过滤查询结果...由于这两个字段在 Post 没有定义,Post 记录时间的字段 created_time,因此我们需要显示地定义查询规则,定义的规则是: 查询参数名 = 查询参数值的类型(查询的模型字段,查询表达式...) 例如示例定义的 created_year 查询参数,查询参数值的类型 number,即数字,查询的模型字段 created_time,查询表达式是 year。

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

    Django rest Framework入门 五 :认证、权限、限流、分页和过滤

    这里设置未认证用户每天100次请求次数,认证用户每分钟100次请求次数。 对视图进行限流 也可以通过ScopedRateThrottle对视图进行限流,以下是示例代码,代码仓库并没有。...ordering=title 就会在返回结果针对title进行排序 在DRF的排序需要依赖于django-filter实现,所以要先安装: pip install django-filter 安装好之后要修改...ordering=title 过滤器 所谓过滤其实就是在API请求的时候加上一些参数,限制返回的结果,比如只查询id1的书本信息,或者查询id大于2小于5的书本信息。...,/books/bookinfos/?...5 # 后端默认设置的每页返回的数据的条数 max_page_size = 5 # 前端允许的最大自定义每页的数据条数,也就是上面page_size的最大值 修改settings文件 # rest

    7410

    Django项目最常用的20个包

    django-debug-toolbar[2] 虽然Django自带了Debug模式,但 django-debug-toolbar 将其提升到一个新的水平,提供了一组可配置的面板来检查网站的所有区域,包括 SQL 查询...django-storages[9] 你是否在处理用户上传的内容(在 Django 通常称为“media”),或者静态文件使用专用的 CDN( S3)?...它还附带了流行的 CSS 框架的模板包, Tailwind、Bootstrap、Bulma、Foundation 和 Uni-form。...whitenoise[17] 网站需要一种方法来提供静态文件,在 Python 生态系统默认选择是 WhiteNoise。...Black[20] Black 是一个 Python 代码格式化程序,它或多或少是 Django 社区默认格式化程序。将其集成到您的工作流程中将节省时间并为您和您的同事生成更具可读性的代码。

    33720

    初始化 RESTful API 风格的博客系统

    接下来,我们将使用 django-rest-framework,一步步博客系统开发 RESTful API,并在这个过程深入学习 django-rest-framework 的使用方法,后续使用...=no 使用 Docker 启动则无需设置,因为会自动启动一个包含 Elasticsearch 服务的 Docker 容器。...进入到项目根目录,运行: $ pipenv install djangorestframework django-filter django-filter 这个库用来提供 API 查询结果过滤的功能,我们后面会讲到怎么用...DefaultRouter 类默认会帮我们生成一个API 交互后台的根视图,直接访问 http://127.0.0.1:8000/api/ 就可以进入 API 交互后台。...至此,django-rest-framework 的安装和基本设置已经完成,接下来就来开始开发博客 API 了。

    68420

    教你 10 分钟构建一套 RESTful API 服务( 下 )

    为了简化过程,使用命令行连接本地 Mysql 数据库 ,并新建一个名为 rest 的数据库 然后,在项目的设置文件 settings.py ,指定默认的数据库连接信息 # api/api/settings.py...DATABASES = { # 默认:Mysql数据库的rest 'default': { 'ENGINE': 'django.db.backends.mysql'...实现 具体步骤如下: 第 1 步,编写模型,并映射数据库 新建一个类,继承自 django.db.models 的 Model 对象,新增几个字段,指定数据类型和默认值 # api/restfulapi.../restfulapi/serializers.py from rest_framework import serializers from .models import Music # 序列化模型其他格式...kwargs): """全部音乐数据""" pass def retrieve(self, request, *args, **kwargs): """查询一条数据

    1.6K40

    跟着官方文档学Python——Django Rest framework

    两者都是数据转换格式,比如我们在django获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以需要把数据进行序列化,变成字符串或者json数据,提供给别人,这是序列化。...pip install django-filter # Filtering支持。...,完成客户端请求的增删查改 将模型类对象转换为响应的数据(JSON格式) 接下来以学生管理例介绍下使用drf写代码的过程: 创建子应用: python manage.py startapp students...changed mysql> show tables; Empty set (0.02 sec) Django连接mysql数据库 pip install pymysql 在主应用的__init__.py设置...queryset后进行序列化操作 class StudentAPIView(ModelViewSet): queryset = Students.objects.all() # 指明该视图的查询

    2.3K10

    重点内容回顾-DRF

    c.SET_NULL设置 NULL,代表的是主表删除数据的时候,将外键关联的表数据设置NULL。仅仅在该字段null=True,允许null时可用。...之前我们在数据库查询操作,由一查多的时候,是下面的操作: # 1.查询id200001的地区 area = Area.objects.get(id=200001) # 2.查询area的下级地区 #...数据库查询 属性: queryset(指定视图所使用的查询) 方法: get_queryset返回视图所使用的查询 get_object从视图所使用的查询集中查询指定的对象,默认根据pk进行查询。...elif self.action == 'latest': # 返回latest操作使用的查询 else: # 返回其他操作所使用的查询 5.6.6...我们既可以针对匿名用户和认证用户进行统一限流设置,也可以分开进行限流设置。 过滤:需要先安装django-filter并进行注册设置,再在视图中通过 filter_fields设置过滤字段。

    2.4K20

    教你 10 分钟构建一套 RESTful API 服务( Django篇 )

    准备 首先,我们使用 Pycharm 创建一个 Django 项目,并新增一个 App 为了简化过程,使用命令行连接本地 Mysql 数据库 ,并新建一个名为 rest 的数据库 然后,在项目的设置文件...settings.py ,指定默认的数据库连接信息 # api/api/settings.py DATABASES = {     # 默认:Mysql数据库的rest     'default...实现 具体步骤如下: 第 1 步,编写模型,并映射数据库 新建一个类,继承自 django.db.models 的 Model 对象,新增几个字段,指定数据类型和默认值 # api/restfulapi.../restfulapi/serializers.py from rest_framework import serializers from .models import Music # 序列化模型其他格式...kwargs):         """全部音乐数据"""         pass     def retrieve(self, request, *args, **kwargs):         """查询一条数据

    6K10

    Flask框架在Python面试的应用与实战

    版本控制:讨论DRF实现API版本控制的方法,URL路径版本、请求头版本等。...权限控制与认证权限(Permissions):概述DRF的权限系统,列举常用权限类(IsAuthenticated、IsAdminUser等),并展示如何自定义权限。...分页、过滤与排序分页(Pagination):解释如何启用分页,选择合适的分页类(PageNumberPagination、LimitOffsetPagination),并设置分页参数。...过滤(Filtering):介绍使用django-filter库或内置filterset_fields实现资源过滤。排序(Sorting):讲解如何启用排序功能,允许客户端通过查询参数指定排序字段。...对于复杂查询,考虑使用Django ORM的查询优化技巧或添加数据库索引。

    13510

    115道MySQL面试题(含答案),从简单到深入!

    - 查询效率:使用索引,优化复杂查询,避免全表扫描。 - 锁竞争:减少长事务,优化锁粒度,避免不必要的行锁。32. 如何在MySQL设置和使用存储过程的参数?存储过程可以接受输入参数和返回输出参数。...例如: sql SET @myVar = 100; SELECT @myVar; 这将声明一个变量myVar并将其值设置100。48. 解释MySQL的视图锁定。...- 分批处理:将大型查询分解多个小查询,逐步构建最终结果。 - 读取优化:在主从复制环境,从从服务器读取数据以减轻主服务器负担。 - 硬件优化:确保有足够的内存和高效的存储来处理大型数据。...如何在MySQL中使用和管理索引?使用和管理MySQL的索引涉及: - 常用的查询和排序列创建索引。 - 定期使用OPTIMIZE TABLE命令或类似工具维护和重新组织索引。...- 数据库操作设置合理的超时时间。113. 解释MySQL的FORCE INDEX的用途和影响。FORCE INDEX是一个优化器提示,用来强制MySQL查询使用特定的索引。

    15910
    领券