为了在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()。
要从数据库中检索对象,请在模型类上构建一个 QuerySetvia a Manager。
A QuerySet表示数据库中的对象集合。它可以有零个,一个或多个过滤器。过滤器根据给定的参数缩小查询结果范围。在SQL术语中,a QuerySet等于SELECT语句,过滤器是限制子句,如WHERE或LIMIT。
从表中检索对象的最简单方法是获取所有这些对象。为此,请使用以下all()方法
要创建此类子集,请优化初始 QuerySet添加过滤条件。两种最常见的改进方法QuerySet是:
filter(**kwargs)QuerySet包含与给定查找参数匹配的新对象。exclude(**kwargs)QuerySet包含与给定查找参数不匹配的新对象。查找参数(**kwargs在上面的函数定义中)应采用下面的字段查找中描述的格式。
例如,要获取QuerySet2006年的博客条目,请使用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]
原文:https://www.cnblogs.com/roygood/p/10113289.html