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

django 1.8 官方文档翻译: 2-2-1 执行查询

举个例子,使用下面这个这个查询集返回前十个对象中的偶数次对象,就会运行数据库查询: >>> Entry.objects.all()[:10:2] 要检索单独的对象,而非列表 (比如 SELECT foo...Python 允许函式接受任意多 name-value 形式的参数,并在运行时才确定name和value的值。详情请参阅官方Python教程中的 关键字参数(Keyword Arguments)。...(比如 filter(), exclude(), get()) 除了能接收关键字参数以外,也能以位置参数的形式接受一个或多个 Q 对象。...它运行时立即删除对象而不返回任何值。例如: e.delete() 你也可以一次性删除多个对象。每个 QuerySet 都有一个 delete() 方法,它一次性删除 QuerySet 中所有的对象。...如果你想保存 QuerySet 中的每个对象,并且调用每个对象各自的 save() 方法,那么你不必另外多写一个函式。

4.4K20

Django之QuerySet详解

匿名参数的别名将基于聚合函数的名称和模型的字段生成。 只有引用单个字段的聚合表达式才可以使用匿名参数。 其它所有形式都必须用关键字参数。...Event可能有多个排序数据;具有多个children的每个Event将被多次返回到order_by()创建的新的QuerySet中。...下面的例子将values() 与普通的模型对象进行比较: # 列表中包含的是Blog对象 >>> Blog.objects.filter(name__startswith='Beatles') QuerySet...每个延迟字段将在你访问该字段时从数据库中检索(每次只检索一个,而不是一次检索所有的延迟字段)。 可以多次调用defer()。...5. bulk_create() bulk_create(objs, batch_size=None) 以高效的方式(通常只有1个查询,无论有多少对象)将提供的对象列表插入到数据库中: >

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

    Django学习笔记之Queryset详解

    QuerySet实例,QuerySet是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model 实例,它里面的方法也是表级方法,前面说了,Django给我们提供了增加表级方法的途径,那就是自定义...2.4.3  annotate(无对应SQL关键字) 函数原型annotate(*args, **kwargs) 返回QuerySet 往每个QuerySet的model instance中加入一个或多个字段...数量,字段命名为ut_num,返回的QuerySet中的每个object都有 #这个字段。...当我们不用Author instance的方法,且只想返回几个字段时,就要用values(),它返回的是一个ValuesQuerySet对象,它类似于一个列表,不过,它的每个元素是字典。...()和prefetch_related(),可以是任意深度(即任意多个双下划线)的关联,通常一层关联和二层关联用的比较多;第三种:返回ValuesQuerySet, ValuesListQuerySet

    2.7K30

    Django ORM 单表操作

    QuerySet类型数据,类似于list,里面放的是排序后的模型类的对象,可用索引下标取出模型类的对象 参数的字段名要加引号 降序为在字段前面加个负号 - def book(request):...") values 查询字段 返回的是 QuerySet 类型数据,类似于 list,里面不是模型类的对象,而是一个可迭代的字典序列,字典里的键是字段,值是数据 def book(request...,以列表套字典的形式 # QuerySet [{'price': Decimal('99.00'), 'title': 'Python'}] book_obj1 = models.Book.objects.filter...print(book_obj) # 返回所有price和title字段,以列表套元组的形式 # QuerySet [(Decimal('99.00'), 'Python')] for...,字段名和数据都能够获取到 values_list查询返回的结果是列表套元组的形式,只返回数据 distinct 去重 distinct() 方法用于对数据进行去重,返回的是 QuerySet 类型数据

    1.3K20

    Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

    一个 QuerySet 代表着你数据库中的一系列对象的集合,它可以是 0 个、 1 个 或者多个 filters,filters 可以基于你给出的参数 缩小查询结果的范围,对于 SQL ,一个 QuerySet...(headline) 以 What 开头的 QuerySet 对象(记录对象集合) 第二个 QuerySet 是第一个集合的子集合(再次筛选后的对象),附加条件:pub_date 不是(exclude)...QuerySet 对象的 filter() 、exclude()、get() 方法中作为条件 常见形式 注意点 不同数据库对这些方法支持不同,django orm 对应不同数据库也能翻译成不同的 SQL...|the) +'; 范围类 __in # 字段的值在不在给定的列表范围内 Entry.objects.filter(id__in=[1, 3, 4]) # --> SELECT ......WHERE id IN (1, 3, 4); # 补充:也可以使用会动态的查询 QuerySet 作为列表 inner_qs = Blog.objects.filter(name__contains=

    2.9K20

    【Django】QuerySet以及Pickle 序列化在Django中的深度运用详解

    这是为了方便Python交互式解释器,因此当以交互方式使用API时,可以立即看到结果。 len()调用len()时,将执行QuerySet。正如所期望的,这将返回结果列表的长度。...WHERE NOT pub_date > '2005-1-3' AND NOT headline = 'Hello' 使用提供的查询表达式列表注释QuerySet中的每个对象。...表达式可以是简单值、对模型(或任何相关模型)字段的引用,或计算与QuerySet中的对象相关的对象的聚合表达式(平均值、总和等)。...annotation()的每个参数都是一个注释,将添加到返回的QuerySet中的每个对象。 Django提供的聚合函数在以下聚合函数中进行了描述。...如果QuerySet以任何方式排序,则此属性为true。 每个order_by()调用清除以前的排序。

    1.8K10

    【Django】聚合在Django的详细解析以及运用在企业级项目里的方法

    在此示例中,将计算Book模型上价格字段的平均值。可以在QuerySet引用中找到可用聚合函数的列表。 Aggregate()是QuerySet的一个结束语句。...但是,有时要聚合的值属于所查询模型的关联模型。 在聚合函数中指定聚合字段时,Django允许您在筛选相关字段时使用相同的双下划线符号。Django将处理需要检索和聚合相关值的任何表连接。...应用于公共模型字段的任何过滤器()(或exclude())都将具有约束被认为是聚合的对象的效果。 当使用annotate()子句时,过滤器具有约束注释对象计算的效果。...例如,可以使用查询生成所有书籍的注释列表。此列表的标题以“Django”开头。...第二个查询查询每个出版商得分超过3的图书数量。过滤器优先于注释,因此过滤器限制了计算注释时要考虑的对象。 第一个查询请求具有至少一本得分大于3的书的平均得分。

    2K40

    Django之Model操作数据库详解

    book1.authors.add(author1,author2)#为书籍对象添加多个作者对象 也可以用这种方式: book1.authors.add(*[author1,author2])#为书籍对象添加作者对象的列表...filter返回的是一个QuerySet对象,filter里可以设定多个过滤条件 4、查 查询数据使用QuerySet API。...annotate()的每个参数都是一个annotation,它将添加到返回的QuerySet每个对象中。    ...如果指定字段,每个字典将只包含指定的字段的键/值。如果没有指定字段,每个字典将包含数据库表中所有字段的键和值。...Q Q对象可以对关键字参数进行封装,从而更好的应用多个查询 #查询table2表中以"aaa"开头的所有的title列 q1=table2.objects.filter(Q(title__startswith

    7.1K10

    37.Django1.11.6文档

    (2)使用get()检索单个对象 filter() 始终给你一个QuerySet,即使只有一个对象满足查询条件 —— 这种情况下,QuerySet将只包含一个元素。...my_queryset.defer(None) only() only(*fields) only()方法或多或少与defer()相反。 你以不应该在检索模型时延迟的字段调用它。...下面是一个完整的列表: 模型字段 表单域 AutoField 没有以形式表示 BigAutoField 没有以形式表示 BigIntegerField IntegerField with min_value...ModelAdmin.list_select_related 设置list_select_related以告诉Django在检索管理更改列表页面上的对象列表时使用select_related()。 ...这个会话框架让你可以存储和取回每个站点访客任意数据。 它在服务器端存储数据, 并以cookies的形式进行发送和接受数据.

    24.4K80

    Django学习笔记:QuerySet API

    这说明filter返回的对象是一个拥有order_by方法的对象。而这个对象正是一个新的QuerySet对象。因此可以使用order_by方法。...那么以下将介绍在那些会返回新的QuerySet对象的方法。 filter:将满足条件的数据提取出来,返回一个新的QuerySet。具体的filter可以提供什么条件查询。请见查询操作章节。...annotate:给QuerySet中的每个对象都添加一个使用查询表达式(聚合函数、F表达式、Q表达式、Func表达式等)的新字段。...是类似于{"title":"abc","content":"xxx"}的形式。...defer:在一些表中,可能存在很多的字段,但是一些字段的数据量可能是比较庞大的,而此时你又不需要,比如我们在获取文章列表的时候,文章的内容我们是不需要的,因此这时候我们就可以使用defer来过滤掉一些字段

    63320

    django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

    比如,如果你在检索一列图书,你可能想知道有多少作者写了每一本书。每本书和作者是多对多的关系。我们想要汇总QuerySet.中每本书里的这种关系。 逐个对象的汇总结果可以由annotate()子句生成。...当annotate()子句被指定之后,QuerySet中的每个对象都会被注上特定的值。 这些注解的语法都和aggregate()子句所使用的相同。...作用于普通模型字段的任何 filter()(或 exclude()) 都会对聚合涉及的对象进行限制。 使用annotate() 子句时,过滤器有限制注解对象的作用。...num_authors') values() 通常,注解会添加到每个对象上 —— 一个被注解的QuerySet会为初始QuerySet的每个对象返回一个结果集。...不是在原始的 QuerySet返回结果中对每个对象中添加注解,而是根据定义在values() 子句中的字段组合对先结果进行唯一的分组,再根据每个分组算出注解值, 这个注解值是根据分组中所有的成员计算而得的

    1.7K30

    【Django】 开发:数据库操作和后台管理

    (条件) 语法: MyModel.objects.filter(属性1=值1, 属性2=值2) 返回值: QuerySet 容器对象,内部存放 MyModel 实例 说明: 当多个属性在一起时为 "与...list_display 去控制哪些字段会显示在 Admin 的修改列表页面中。...list_filter 设置激活 Admin 修改列表页面右侧栏中的过滤器 search_fields 设置启用 Admin 更改列表页面上的搜索框。...list_editable 设置为模型上的字段名称列表,这将允许在更改列表页面上进行编辑。...,…),每个学校都有不同的学生… 1.语法 在关联的两个类中的任意一个类中,增加: 属性 = models.ManyToManyField(MyModel) 2.用法示例 一个作者可以出版多本图书 一本图书可以被多名作者同时编写

    4.1K40

    Django学习-第十讲(上):QuerySet API 学习

    QuerySet的方法 在使用QuerySet进行查找操作的时候,可以提供多种操作。比如过滤完后还要根据某个字段进行排序,那么这一系列的操作我们可以通过一个非常流畅的链式调用的方式进行。...这说明filter返回的对象是一个拥有order_by方法的对象。而这个对象正是一个新的QuerySet对象。因此可以使用order_by方法。...那么以下将介绍在那些会返回新的QuerySet对象的方法。...(title__contains='hello') 3.annotate:给QuerySet中的每个对象都添加一个使用查询表达式(聚合函数、F表达式、Q表达式、Func表达式等)的新字段 将在每个对象中都添加一个...是类似于{"title":"abc","content":"xxx"}的形式 6.values_list:类似于values。

    59620

    Python Day16 Django

    可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数 分组 NOTE: 1 一旦匹配成功则不再继续 2 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。...3 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。 4 每个正则表达式前面的'r' 是可选的但是建议加上。...> {{ dic.name }} 此时页面显示: {'name': 'dzm', 'age': 18} dzm 举例4: 除此之外还可以引用类 还可以在视图函数中建一个类的对象列表...): 它包含了与所给筛选条件相匹配的对象 Returns a new QuerySet 后面加.first()才是对象** filter() QuerySet QuerySet [<Book:...多对多查询 book_obj = Book.objects.filter(id=6).first() #book_obj.author.all(): 与这本书关联的作者对象的集合,Queryset print

    1.9K10
    领券