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

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

使用过滤器获取特定对象 all()方法返回结果集中包含全部对象,但是更普遍情况是你需要获取完整集合一个子集。 要创建这样一个子集,需要精炼上面的结果集,增加一些过滤器作为条件。...一般来说,对 QuerySet 切片返回 QuerySet – 这个过程中不会对运行查询。不过也有例外,如果你切片时使用了 “step” 参数,查询集就会被求值,就在数据库中运行查询。...实际比较是两个 model 主键值。...Django 自动比较主键值,而不管他们名称是什么。...本质上来说,INSTALLED_APPS 作用之一就是确认 Django 完整 model 范围。 关联对象查询 包含关联对象查询与包含普通字段值查询都遵循相同规则。

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

Django之QuerySet详解

换句话说,用order_by()方法对QuerySet对象进行操作返回一个扩大版QuerySet对象。因此,使用多值字段对结果进行排序时要格外小心。 没有方法指定排序是否考虑大小写。...21. using() using(alias) 如果正在使用多个数据库,这个方法用于指定在哪个数据库查询QuerySet。方法唯一参数是数据库别名,定义DATABASES。...在这种情况下,应该限制查询关联上下文内部。 否则,可能导致完整性问题。...对于返回大量只需要访问一次对象QuerySet,这可以带来更好性能,显著减少内存使用。 请注意,已经提交了iterator()使用QuerySet强制它再次提交数据库操作,进行重复查询。...earliest()和latest()可能返回空日期实例,可能需要过滤掉空值: Entry.objects.filter(pub_date__isnull=False).latest('pub_date

2.3K20

django-7-django模型系统

TestFiled  DateFiled  AutoFiled(primary_key=True)自增,不指定主键自动创建 使用时候何以设置DateField.auto_now每次自动保存对象时候自动设置改字段为当前时间... 模型类管理器(class.objects)  queryset (惰性,,没有操作数据库)表示数据库中对象集合,等同于select 语句   query 获取mysql 语句  first()...) 根据给定条件获取过滤queryset,多个条件用','连接  exclude(**kwargs) 作用和filter相反,去除不符合条件对象  多条件or连接  from django.db.models...import Q  Q(age=1) | Q(age=0)  返回某个字段  values(*fileds) field指定字段,返回一个queryset返回一个‘字典列表’  only(*fields...) 与values差不多,返回queryset,‘对象列表’,必须带上主键  defer(*field) 和only功能相反,用法一样,返回一个queryset,对象列表,排除  排序  order_by

78210

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

想要得到这么一小部分对象,我们需要细化(约束)最初 QuerySet ,增加过滤条件,细化 QuerySet 最常用两种写法如下: filter(**kwargs) 返回一个符合你给出查找参数(条件...),附加条件:pub_date 不是(exclude)今天或者将来 --> 今天及今天之前 第三个 QuerySet 是第一个集合子集合(第一个条件再加条件),附加条件:pub_date 是今天或者将来...后续取值可以复用 QuerySet 缓存结果。 # 下面的这两行代码走两次数据库操作,很可能他们两次得到数据是相同。 # 为什么我们不避免它呢?...(use for introspection) ordered 如果 QuerySet 查询结果是有序返回 True,如果是无序返回False db 将会用于执行查询语句数据库 query...=False) 过滤字段 .none() 创建空 QuerySet 调用 .none() 方法会创建一个空 QuerySet ,里面不包含任何数据对象,并且取值时也不会执行任何数据库操作(是 EmptyQuerySet

2.9K20

编写自己dapper lambda扩展-使用篇

这是个人业余开源小项目,如果大家有更好实现方式和好建议欢迎拍砖 本项目已经github开源了:Sikiro.DapperLambdaExtension.MsSql 去年写了《整理自己.net...工具库》,里面提供源码重新发布到了github并用新项目名Sikiro.Tookits 这两个项目都发布到Nuget上了,可以Nuget搜索Sikiro可以全部查看到 另外该项目会用到一些表达式树知识...,如果有兴趣朋友可以先去了解,之前也写过一篇简单文章《表达式树解析.》...您可以根据条件来删除数据 con.CommandSet().Where(a => a.Email == "287245177@qq.com").Delete() QUERY GET 获取过滤条件一条数据...fengshuzhen", UserStatus = 1, UserType = 1, Password = "asdasdad" }); }); 最后来一个完整

1.1K20

django 1.8 官方文档翻译: 2-6-4 数据库访问优化

在数据库中而不是Python中做数据库工作 比如: 最基础层面上,使用过滤器和反向过滤器对数据库进行过滤。 使用F 表达式相同模型中基于其他字段进行过滤。 使用数据库中注解和聚合。...如果记录中返回了成百上千个对象,代价是非常大。如果数据库运行在分布式服务器,网络开销和延迟也是一大因素,代价会是它们组合。...{% if emails %}那一行调用了QuerySet.bool(),它导致user.emails.all()查询在数据库执行,并且至少第一行以一个ORM对象形式返回。...如果没有任何结果,返回False,反之为True。 {{ emails|length }}调用了QuerySet.len()方法,填充了缓存剩余部分,而且并没有执行另一次查询。...直接使用外键值 如果你仅仅需要外键当中一个值,要使用对象你已经取得外键值,而不是获取整个关联对象再得到它主键

1.1K30

DRF框架学习(三)

1.2类视图两个基类 1.2.1APIView 是View类子类,view类基础添加了一些额外功能。...2.响应时可以统一返回Response类对象 3.异常处理:如果视图中抛出了未处理异常,DRF框架自动对异常进行处理,并且会把处理之后错误信息返回给客户端。...Response类对象: 1.传入原始相应数据(比如一个字典),Response自动根据客户端请求头中 Accept将相应数据转换为对应格式进行返回。默认是json格式。...1.2.2GenericAPIView 继承于APIView,是APIView子类,APIView基础添加操作序列化器和数据库查询方法。封装这些方法,我们可以直接使用。...其他功能: a)过滤 b)分页 补充知识点: 查询时候我们想不根据主键pk查询,而是根据我们需求查,那么可以根据修改 lookup_field(值改为我们要查询字段名称)值来解决需求。

1.1K20

django 1.8 官方文档翻译: 2-5-6 多数据库

人工指定数据库优先级高于路由分配数据库。 为QuerySet手动选择一个数据库 你可以QuerySet“链”任意节点QuerySet选择数据库 。...当保存在statement 2中发生时,p已经具有一个主键,Django 将尝试数据库使用该主键。...然而,如果p 主键second数据库已经使用second 数据库中已经存在对象将在p保存时被覆盖。 你可以用两种方法避免这种情况。首先,你可以清除实例主键。...两个数据库具有相同主键。...为了保持两个对象之间关联,Django 需要知道关联对象主键是合法。如果主键存储另外一个数据库,判断一个主键合法性不是很容易。

1.5K20

Django内置通用类视图及实例

属性: model: 指定模型 tempalta_name:模板文件 queryset:指定一个经过过滤对象列表,将取代model提供值 context_object_name: 指定要在上下文中使用变量名称...方法: get_queryset():获取此视图对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作关键点,在于当类视图被调用时...,各种有用对象被存储self,同request(self.request)一样,其中包含了从URLconf中获取到位置参数(self.args)和关键字参数(self.kwargs)....方法: get_queryset():返回用来获取本视图显示对象queryset.如果设置了queryset属性,get_queryset()默认返回值. get_object(queryset=...None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()从视图所有参数中查找pk_url_kwarg

2.9K40

django 1.8 官方文档翻译: 3-4-2 内建显示视图

如果你将你视图实现为通用视图子类,你就会发现这样能够更有效地编写你想要代码,使用你自己基于类或功能视图。 一些三方应用中,有更多通用视图示例,或者你可以自己按需编写。...要在你自己想要改变上下文类中保持这一行为,你应该确保超类中调用了get_context_data。如果没有任意两个类尝试定义相同键,返回异常结果。...相当方便是, ListView 有一个get_queryset() 方法来供我们重写。之前,它只是返回一个queryset属性值,但是现在我们可以添加更多逻辑。...让这种方式能够工作关键点,在于当类视图被调用时,各种有用对象被存储self;同request()(self.request)一样,其中包含了从URLconf中获取到位置参数 (self.args...pk - 这个名字是DetailView用来查找主键默认名称,其中主键用于过滤查询集。

1.4K40

重写djangomodel下objects模型管理器方式

django自定义管理器和model继承 写代码时建立很多数据库需要一些共同字段,比如is_active, create_time这些字段,所以可以建立一个基类model 模型继承 我们可以充分利用...=False,但是这样我们每个 filter(is_active=True)都需要这样写,那我们能不能重写掉这个filter方法, 让他每次可以自己过滤掉,这里我们可以看一下django源码 # 这里源码就不拉出来了...函数是有返回,所以我们将super出来结果返回出去,我们只需要在kwargs中增加个参数就行 ''' if not kwargs.get('is_active', True): # 如果需要查看所有数据...,确保它是一个有效image 字段选项 概述:通过字段选项,可以实现对字段约束, 字段对象中通过关键字参数指定 null:如果为True,Django将空值以NULL存储在数据库中,默认值为False...db_index:若值为 True,则在表中会为此字段创建索引 default: 默认值 primary_key: 若为 True,则该字段会成为模型主键字段 unique:如果为 True,这个字段表中必须有唯一值

1.5K40

Django学习笔记:QuerySet API

方法全部都是通过Python动态添加方式,从QuerySet类中拷贝过来。 所以我们如果想要学习ORM模型查找操作,必须首先要学会QuerySet一些API使用。...返回QuerySet方法: 使用QuerySet进行查找操作时候,可以提供多种操作。比如过滤完后还要根据某个字段进行排序,那么这一系列操作我们可以通过一个非常流畅链式调用方式进行。...那么以下将介绍在那些返回QuerySet对象方法。 filter:将满足条件数据提取出来,返回一个新QuerySet。具体filter可以提供什么条件查询。请见查询操作章节。...,但是有些字段是不能过滤,比如id,即使你过滤了,也提取出来。...说明上面的QuerySet并没有真正执行。 以下情况下QuerySet会被转换为SQL语句执行: 迭代:遍历QuerySet对象时候,会首先先执行这个SQL语句,然后再把这个结果返回进行迭代。

60220

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

QuerySet QuerySet本身可以不访问数据库情况下构造、过滤、切片或复制和分配。只需要在需要从数据库检索数据或将数据保存到数据库时访问数据库。...切片未执行QuerySet通常会返回另一个未执行Query Set。但是,如果使用切片语法step参数,Django将执行数据库查询并返回一个列表。...对执行QuerySet进行切片也返回一个列表。...len()调用len()时,将执行QuerySet。正如所期望,这将返回结果列表长度。...annotation()每个参数都是一个注释,将添加到返回QuerySet每个对象。 Django提供聚合函数以下聚合函数中进行了描述。

1.7K10

Django MVT之M

更加完整介绍参考Django 1.8.2 中文文档 字段选项 通过选项实现对字段约束,常用选项如下: 选项 描述 default 字段默认值 primary_key 主键约束。...默认值是False,若为True,则该字段会成为模型主键字段,一般作为AutoField选项使用。 unique 唯一约束。默认值是False,如果为True, 这个字段表中必须有唯一值。...all 返回模型类对应表格中所有数据。 QuerySet对象 aggregate 无参数 filter 返回表中满足条件数据。 QuerySet对象 参数为查询条件。...查询集(QuerySet对象) 调用all, filter, exclude, order_by这些函数返回一个查询集(QuerySet对象),查询集有以下特性: 惰性查询:只有实际使用查询集中数据时候才会发生对数据库真正查询...# 1.自定义一个管理器类,这个类继承models.Manger类 class SchoolInfoManager(models.Manager): # 过滤父类方法返回查询集来改变查询集

99910

Django QuerySet查询集原理及代码实例

当调用如下过滤器方法时,Django返回查询集(而不是简单列表): all():返回所有数据。 filter():返回满足条件数据。 exclude():返回满足条件之外数据。...对查询集可以再次调用过滤器进行过滤,也就意味着查询集可以含有零个、一个或多个过滤器。过滤器基于所给参数限制查询结果。...要避免遍历数据同时产生queryset cache,可以使用iterator()方法 来获取数据,处理完数据就将其丢弃。...所以使 #用iterator()时候要当心,确保你代码操作一个大queryset时没有重复执行查询。     ...(2) querysetcache是用于减少程序对数据库查询,通常使用下保证只有需要时候才会查询数据库。 使用exists()和iterator()方法可以优化程序对内存使用。

1.3K21
领券