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

Django 2.1.7 查询集 QuerySet

上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。...缓存:使用同一个查询集,第一次使用时会发生数据库的查询,然后把结果缓存下来,再次使用这个查询集时会使用缓存的数据。 查询集的缓存 每个查询集都包含一个缓存来最小化对数据库的访问。...在新建的查询集中,缓存为空,首次对查询集求值时,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来对查询集求值将重用缓存中的结果。...,都进行这个查询集的执行,所以mysql执行日志有两次,如下: 限制查询集 可以对查询集进行取下标或切片操作,等同于sql中的limit和offset子句。...对查询集进行切片后返回一个新的查询集,不会立即执行查询。

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

    Django REST Framework-什么是视图(一)

    在Django REST Framework中,视图是处理HTTP请求和响应的核心组件。视图接收HTTP请求,然后根据请求的方法(GET,POST,PUT等)执行相应的操作,并返回HTTP响应。...DRF视图可以是函数视图或基于类的视图。函数视图类似于Django中的函数视图,它接收一个request对象并返回一个响应。...以下是一个简单的基于类的视图示例:from rest_framework import genericsfrom .serializers import BookSerializerfrom .models...,并指定了查询集和序列化器类。...以下是一些常用的视图类型:ListAPIView:提供一个只读列表视图,显示一个查询集的序列化结果。RetrieveAPIView:提供一个只读详情视图,显示一个对象的序列化结果。

    62331

    DRF 视图组件

    ,上篇使用的APIView是比较偏Base的,视图的使用更加简化了代码,这里介绍一下其他视图的用法 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、...转换数据) 控制数据库查询的执行 先来看看这其中的人情世故:两个视图基本类,五个扩展类,九个视图子类,视图集方法,视图集·· 视图组件大纲 两个视图基本类 导入: from rest_framework.views...通用视图类 五个扩展类 扩展类不是视图类,没有集成APIView,需要配合GenericAPIView使用,因为五个扩展类的实现需要调用GenericAPIView提供的序列化器与数据库查询的方法...,RetrieveUpdateDestroyAPIView,RetrieveDestroyAPIView 视图子类其实可以理解为GenericAPIView通用视图类和Mixin扩展类的排列组合组成的...~ ReadOnlyModelViewSet视图集 继承该ReadOnlyModelViewSet视图集的作用是只读,只做查询,修改删除等操作不允许 from rest_framework.viewsets

    1.4K10

    从入门到精通Django REST Framework-(五)

    GenericAPIView 是 Django REST Framework (DRF) 中的一个基础视图类,它继承自 APIView,并添加了一些常用的功能,特别是与数据库模型交互的功能。...它是 DRF 中通用视图和视图集的基础,提供了查询、序列化、分页等常用操作的标准实现。本质上它是 DRF 中所有通用视图(如 ListAPIView、RetrieveAPIView 等)的基础。二....与 Mixin 类的关系GenericAPIView 本身不提供 CRUD 操作的实现,但 DRF 提供了一系列 Mixin 类,可以与 GenericAPIView 组合使用:ListModelMixin...self.filter_queryset() 应用过滤在 filter_queryset 中,首先调用父类方法应用配置的过滤器然后遍历所有查询参数,检查是否与模型字段匹配对于匹配的参数,构建过滤条件并应用到查询集最后序列化过滤后的查询集并返回响应使用示例假设...title=Django - 过滤标题包含 "Django" 的图书/api/books/?

    94410

    Django 2.1.7 查询集 QuerySet

    上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。...缓存:使用同一个查询集,第一次使用时会发生数据库的查询,然后把结果缓存下来,再次使用这个查询集时会使用缓存的数据。 查询集的缓存 每个查询集都包含一个缓存来最小化对数据库的访问。...在新建的查询集中,缓存为空,首次对查询集求值时,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来对查询集求值将重用缓存中的结果。...,都进行这个查询集的执行,所以mysql执行日志有两次,如下: 限制查询集 可以对查询集进行取下标或切片操作,等同于sql中的limit和offset子句。...” 对查询集进行切片后返回一个新的查询集,不会立即执行查询。

    1.2K20

    python测试开发django-rest-framework-87.分页查询

    前言 django-rest-framework 分页器提供了3中分页方式,前面一篇介绍了简单分页 (PageNumberPagination), 本篇继续介绍另外2个分页偏移分页 (LimitOffsetPagination...默认条数 limit_query_param = ‘limit’ # 查询时,查询参数及指定查询多少条 offset_query_param = ‘offset’ # 查询时,指定的起始位置是哪 max_limit...,指定的起始位置是哪 max_limit = 20 # 查询时,最多返回多少条 APIView使用分页查询 写查询视图的时候,先序列化,再定义分页器,查询的时候可以带上参数...,但不能指定指定查询 定义CursorPagination查询的一些参数配置 cursor_query_param = ‘cursor’ # 查询的时候,指定的查询方式,默认’cursor’ page_size...# 默认排序规则:按pk从小到大排序,-pk表示从大到小排序 APIView使用加密游标分页 只能从第一页开始查询,查询的时候结果里面返回了下一页的游标值:cursor=加密串 from rest_framework

    73520

    drf之请求、响应、视图

    3 利用了REST framework的parsers解析器,不仅支持表单类型数据,也支持JSON数据 .query_params request.query_params与Django标准的...APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...-request 当前视图的请求对象 -view 当前请求的类视图对象 -format 当前请求期望返回的数据格式 提供的关于数据库查询的属性与方法 属性:queryset  指明使用的数据查询集...方法: get_queryset(self) :返回视图使用的查询集,主要用来提供给Mixin扩展类使用,是列表视图与详情视图获取数据的基础,默认返回queryset属性,可以重写 get_object...导入: from rest_framework.generics import CreateAPIView, ListAPIView, UpdateAPIView, RetrieveAPIView,

    2.8K20

    python测试开发django-rest-framework-86.分页查询功能(PageNumberPagination)

    前言 当查询出来的数据量非常大的时候,需要分页查询,django-rest-framework 提供了分页的支持。...分页器 django-rest-framework 分页器有三种: PageNumberPagination 简单分页(查看第n页,每页显示N条) LimitOffsetPagination...,不设置的就默认setting配置的全局PAGE_SIZE值 page_query_param 字符串,查询参数的名称,不设置默认是’page’ page_size_query_param 字符串,请求设置页面大小的参数名称...(‘last’,) template 分页空间使用的模板名称,可以覆盖或设置为None,默认’rest_framework/pagination/numbers.html’ APIView使用分页查询...写查询视图的时候,先序列号,再定义分页器,查询的时候可以带上参数/api/v1/goods?

    1.4K30

    第 4 篇:用类视图实现首页 API

    作者:HelloGitHub-追梦人物[1] 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库[2] django-rest-framework 类视图拓展自 django 的类视图...django-rest-framework 中最基本的类视图是 views.APIView,这个类可以看成是上一篇教程中用到的 api_view 装饰器的类版本。...django-rest-framework 针对各种类型的资源操作,提供了对应的通用类视图,这些通用类视图主要包括: CreateAPIView 用于创建资源的 POST 请求。...ListAPIView 和 RetrieveAPIView 用于访问资源列表和单个资源的 GET 请求。 DestroyAPIView 用于删除资源的 DELETE 请求。...以及以上视图的各种组合通用类视图:ListCreateAPIView、RetrieveUpdateAPIView、RetrieveDestroyAPIView、RetrieveUpdateDestroyAPIView

    95710

    RESTful源码笔记之RESTful Framework的APIview, Viewset总结分析

    0x00  引言 官方文档:http://www.django-rest-framework.org/ drf为我们提供强大的通用view的功能,本博客对这些view进行简要的总结分析。...0x01 django View 首先,我们使用django自带的view,获取一个课程的列表: # drf是通过json的格式进行数据交互的,所以这里也返回json数据 import json from...django.views.generic.base import View from django.core import serializers from django.http import HttpResponse...APIView对django本身的View进行封装,从上述的代码,这样分析,两者的差别看起来不是很大,但实际中APIView做了很多东西,它定义了很多属性与方法,举几个例子 # 这三个是常用的属性...,再继承RetrieveAPIView就ok了。

    1.3K10

    Django rest-framework的jwt认证

    解密载荷 先用base64解密成json字符串,再转换成python格式的字典数据 查询User表确定用户账号是否存在 本次请求的信息和解密后的载荷中的信息比对,确定是否是同一用户或设备,决定对用户是否做安全提示...json字符串加密产生新的签名字符串 新的签名字符串与第三段签名碰撞比对,一致的话才能确保token是合法的。...校验用户对象 以上算法都通过后,载荷校验得到的User对象,就是该token代表的登录用户(django中一般把登录用户存放在request.user中) jwt的刷新算法 刷新算法就是在前发完token...后,在token的有效时间内,用户每次提交请求时都会刷新该token的有效时间 刷新算法的实现: 要在签发token的载荷中,额外添加两个时间信息:第一次签发token的时间,最多往后刷新的有效时间 每次请求携带...使用自带设定好的jwt from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ url(r'^login/'

    1.3K10

    django 组装表名查询数据(动态表名、组合表名)

    组装表名查询 import myapp.models def test(requset): user_db_name = "user_%s" % request.user.name # 组装表名...一个模型动态创建的多个 db_table 出处:http://www.chenxm.cc/article/764.html 动态创建 table, 并通过 Django ORM 操作....动态的创建表 动态的创建模型其实就是在运行时生成 Model 类, 这个可以通过函数实现, 通过传参(今天的日期, 如: 20181211),然后生成新的模型类, Meta 中的 db_table 为...注意 LogMetaclass 和 __metaclass__ , 元类可以在运行时改变模型的名字,table 的名称我们可以通过 db_table 定义, 类的名称可以通过覆盖元类的方法定义。...    # 如上述警告所述, Django 不建议重复加载 Model 的定义.     # 作为 demo 可以直接通过get_log_model获取,无视警告.

    3.2K10

    Django REST Framework-常用的权限类型

    Django REST Framework是一个用于构建Web API的强大框架。其中一个重要的特性是提供了多种权限类型来控制用户对API端点的访问。...DjangoModelPermissions:基于Django模型的权限控制。允许用户在执行特定操作之前检查模型的权限。...如果用户已经验证身份,则检查该用户是否具有执行特定操作的模型实例权限。如何使用权限Django REST Framework的权限通常通过将它们附加到视图类中来使用。...示例以下是一个更完整的示例,展示如何在Django REST Framework中使用权限。假设我们有一个名为Snippet的模型,它表示代码片段,我们希望只有创建该代码片段的用户才能够修改或删除它。...首先,我们需要定义一个权限类来检查用户是否有访问代码片段的权限:from rest_framework import permissionsfrom rest_framework.views import

    2.1K20
    领券