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

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

在sql的角度,QuerySet和SELECT命令等价,过滤器是像WHERE和LIMIT一样的限制子句。 你可以从模型的Manager那里取得QuerySet。...最初的 QuerySet (q1) 没有受到筛选的影响。 查询集是延迟的 QuerySets 是惰性的 – 创建 QuerySet 的动作不涉及任何数据库操作。...但也有一些不常用的;请查看 查询API参考 (QuerySet API Reference) 中完整的 QuerySet 方法列表。...缓存和查询 每个 QuerySet 都包含一个缓存,以减少对数据库的访问。要编写高效代码,就要理解缓存是如何工作的。 一个 QuerySet 时刚刚创建的时候,缓存是空的。...和你定义正向关联所用的方式一样,类的实例也可以赋予逆向关联方系: e.entrydetail = ed 关系中的反向连接是如何做到的? 其他对象关系的映射(ORM)需要你在关联双方都定义关系。

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

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

    Retrieving objects 查出对象(QuerySet) 从数据库中查询对象,通过 表模型类的 Manager 管理器 来构造一个 QuerySet 。...通常来说,QuerySet 的结果只会在你 “访问” 它们的时候才会从数据库获取,当你执行时,QuerySet 会通过访问数据库来取值(When you do, the QuerySet is evaluated...and QuerySets 缓存 和 QuerySets 每一个 QuerySet 都包含一个缓存,来最小化数据库访问次数,知道它的工作原理可以让你写出更高效的代码。...可以查看当前 QuerySet 对应的 SQL 语句 Methods that return new QuerySets 返回新的 QuerySets 的方法 # 常见的几个 .filter(**kwargs...WHERE id IN (1, 3, 4); # 补充:也可以使用会动态的查询 QuerySet 作为列表 inner_qs = Blog.objects.filter(name__contains=

    3.4K20

    如何从列表中获取元素

    有两种方法可用于从列表中获取元素,这涉及到两个命令,分别是lindex和lassign。...lassign接收至少两个变量,第一个是列表变量,第二个是其他变量,也就是将列表中的元素分配给这些变量。例如: ? 可以看到此时lassign比lindex要快捷很多。...情形1:列表元素的个数比待分配变量个数多 例如,上例中只保留待分配变量x和y,可以看到lassign会返回一个值c,这个值其实就是列表中未分发的元素。而变量x和y的值与上例保持一致。 ?...综上所述,可以看到在使用lassign时要格外小心,确保变量个数与列表长度一致,或变量个数小于列表长度,否则会出现待分配变量最终被赋值为空字符串的情形。...思考一下: 如何用foreach语句实现对变量赋值,其中所需值来自于一个给定的列表。

    29.4K20

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

    这篇文档剩下的部分,着重于讲解如何以不做无用功的方式使用Django。这篇文档也没有强调用在开销大的操作上其它的优化技巧,像general purpose caching。...理解查询集 理解查询集(QuerySets) 是通过简单的代码获取较好性能至关重要的一步。特别是: 理解查询集计算 要避免性能问题,理解以下几点非常重要: QuerySets是延迟的。...数据在内存中如何存储。 理解缓存属性 和整个QuerySet的缓存相同,ORM对象的属性的结果中也存在缓存。通常来说,不可调用的属性会被缓存。...不要获取你不需要的东西 使用QuerySet.values()和values_list() 当你仅仅想要一个带有值的字典或者列表,并不需要使用ORM模型对象时,可以适当使用values()。...不要不分析数据库就盲目使用延迟字段,因为数据库必须从磁盘中读取大多数非text和VARCHAR数据,在结果中作为单独的一行,即使其中的列很少。

    1.6K30

    Django学习笔记之Queryset详解

    ,见 https://docs.djangoproject.com/en/1.6/ref/models/querysets/#in 2.2 改 update() 批量修改,返回修改的记录数。...,不过要注意,这里不是entry_set,entry_set是Blog instance的一个属性,代表某个Blog object #的关联的所有entry,而QuerySet的方法中反向连接是直接用...其它关键字在django中的实现 在SQL中,很多关键词在删、改、查时都是可以用的,如order by、 like、in、join、union、and、or、not等等,我们以查询为例,说一下django如何映射...用于OneToMany的反向连接,及ManyToMany。...如果只想知道一个QuerySet有多大,而不想获取QuerySet中的每个元素,那就用count();如果已经从数据库获取到了QuerySet,那就用len() 2.4.12  contains/startswith

    3.7K30

    如何从文本数据中提取子列表

    提取文本数据中的子列表可以通过各种方式实现,具体取决于文本数据的结构和提取子列表的条件。...我们需要将这些信息提取出来,并将其分为三个子列表:名言列表、事实列表和宠物列表。我们使用了一个简单的Python脚本来读取文本文件并将其分割成多个子列表。...这导致我们得到了一个错误的子列表结构。2、解决方案为了解决这个问题,我们需要在分割文本文件时,忽略换行符。我们可以使用Python的strip()方法来删除字符串中的空白字符。...the data at the '*'​newlist = [item.strip() for item in data if item]这样,我們就可以正确地分割文本文件中的数据,并将其分为三个子列表...:名言列表、事实列表和宠物列表。

    1.9K10

    如何从 Python 列表中删除所有出现的元素?

    本文将介绍如何使用简单而又有效的方法,从 Python 列表中删除所有出现的元素。方法一:使用循环与条件语句删除元素第一种方法是使用循环和条件语句来删除列表中所有特定元素。...具体步骤如下:遍历列表中的每一个元素如果该元素等于待删除的元素,则删除该元素因为遍历过程中删除元素会导致索引产生变化,所以我们需要使用 while 循环来避免该问题最终,所有特定元素都会从列表中删除下面是代码示例...方法二:使用列表推导式删除元素第二种方法是使用列表推导式来删除 Python 列表中所有出现的特定元素。...具体步骤如下:创建一个新列表,遍历旧列表中的每一个元素如果该元素不等于待删除的元素,则添加到新列表中最终,新列表中不会包含任何待删除的元素下面是代码示例:def remove_all(lst, item...结论本文介绍了两种简单而有效的方法,帮助 Python 开发人员从列表中删除所有特定元素。使用循环和条件语句的方法虽然简单易懂,但是性能相对较低。使用列表推导式的方法则更加高效。

    31.5K30

    python如何高效地从列表中删除多个元素?

    缺点生成新列表,占用额外内存(若列表极大,需考虑内存占用);原列表对象被替换(若有其他引用指向原列表,需注意)。...缺点语法比列表推导式繁琐,效率略低(函数调用开销);同样生成新列表,替换原列表。适用场景过滤逻辑复杂(需多步判断、函数调用)的场景。...方法 3:倒序遍历删除(修改原列表,无额外内存)原理从列表 末尾向前遍历(倒序索引),删除符合条件的元素。由于倒序遍历不会影响未遍历元素的索引(删除后面的元素不影响前面的索引),避免索引错乱。...代码示例# 场景 1:删除所有偶数(修改原列表)nums = [1, 2, 3, 4, 5, 6, 7, 8]# 倒序遍历(索引从 len(nums)-1 到 0)for i in range(len(...缺点语法比列表推导式繁琐;时间复杂度 O(n²)(删除元素时需移动前面的元素,列表越长效率越低)。适用场景列表极大,内存不足(无法生成新列表);必须修改原列表(有其他引用依赖原列表对象)。

    35510

    如何从 Linux 上连接到远程桌面

    远程桌面也被用于帮助客户解决电脑问题:在客户的许可下,你可以远程建立 VNC 或者远程桌面协议(RDP)连接来查看或者交互式地访问该电脑以寻找并解决问题。 运用远程桌面连接软件可以建立这些连接。...在这篇文章里,我会解释如何使用 Remmina 客户端从一台 Linux 电脑上远程连接到 Windows 10 系统 和 Red Hat 企业版 Linux 7 系统。...连接到 Windows 10 在你通过 RDP 连接到一台 Windows 10 电脑之前,你必须修改权限以允许分享远程桌面并通过防火墙建立连接。...你同样也可以在两种访问选项间选择:一个能够让电脑的主要用户接受或者否绝连接要求,另一个能用密码验证连接。在窗口底部,选择被允许连接的网络界面,最后关闭窗口。...接着,从“应用菜单 → 其它 → 防火墙”打开“防火墙设置”。 image.png 勾选 “vnc-server”旁边的选框(如下图所示)关闭窗口。

    11K40
    领券