首页
学习
活动
专区
工具
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项目最常用的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 社区默认格式化程序。将其集成到您的工作流程中将节省时间并为您和您的同事生成更具可读性的代码。

18910

初始化 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 了。

66020

教你 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.5K40

【Django-DRF】md笔记第6篇:Django-DRF的视图、认证、分页和其他功能详解

在执行视图的dispatch()方法前,会先进行视图访问权限的判断在通过get_object()具体对象时,会进行对象访问权限的判断使用可以在配置文件设置默认的权限管理类,REST_FRAMEWORK...pip install django-filter在配置文件增加过滤后端的设置:INSTALLED_APPS = [ ......使用方法:在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter过滤器,REST framework会在请求的查询字符串参数检查是否包含了...我们可以在配置文件设置全局的分页方式,:REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination...limit=100&offset=400可以在子类定义的属性:default_limit 默认限制,默认值与PAGE_SIZE设置一直limit_query_param limit参数名,默认'limit'offset_query_param

19610

跟着官方文档学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):         """查询一条数据

4.7K10

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

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

9310
领券