Django文档阅读之查询
Posted roygood
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django文档阅读之查询相关的知识,希望对你有一定的参考价值。
创建对象
为了在Python对象中表示数据库表数据,Django使用直观的系统:模型类表示数据库表,该类的实例表示数据库表中的特定记录。
要创建对象,请使用模型类的关键字参数对其进行实例化,然后调用save()
以将其保存到数据库中。
>>> from blog.models import Blog
>>> b = Blog(name=‘Beatles Blog‘, tagline=‘All the latest Beatles news.‘)
>>> b.save()
要在单个步骤中创建和保存对象,请使用该 create()
方法。
要保存对已存在于数据库中的对象的更改,请使用 save()
。
更新ManyToManyField
工作的方式略有不同 - 使用 add()
字段上的方法向关系添加记录,而不是用save()。
检索对象
要从数据库中检索对象,请在模型类上构建一个 QuerySet
via a Manager
。
A QuerySet
表示数据库中的对象集合。它可以有零个,一个或多个过滤器。过滤器根据给定的参数缩小查询结果范围。在SQL术语中,a QuerySet
等于SELECT
语句,过滤器是限制子句,如WHERE
或LIMIT
。
从表中检索对象的最简单方法是获取所有这些对象。为此,请使用以下all()
方法
要创建此类子集,请优化初始 QuerySet
添加过滤条件。两种最常见的改进方法QuerySet
是:
filter(**kwargs)
- 返回
QuerySet
包含与给定查找参数匹配的新对象。 exclude(**kwargs)
- 返回
QuerySet
包含与给定查找参数不匹配的新对象。
查找参数(**kwargs
在上面的函数定义中)应采用下面的字段查找中描述的格式。
例如,要获取QuerySet
2006年的博客条目,请使用filter()
如下:
使用Python的数组切片语法的子集将您限制 QuerySet
为一定数量的结果。这相当于SQL LIMIT
和OFFSET
子句。
例如,这将返回前5个对象():LIMIT 5
>>> Entry.objects.order_by(‘headline‘)[0]
这大致相当于:
>>> Entry.objects.order_by(‘headline‘)[0:1].get()
>>> Entry.objects.all()[:5]
以上是关于Django文档阅读之查询的主要内容,如果未能解决你的问题,请参考以下文章