迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Django 中按降序过滤查询集中的项目

作者:迹忆客 最近更新:2023/05/04 浏览次数:

在本教程中,我们将学习如何使用 Django 中的 order_by() 方法按降序过滤出查询集中的项目。


在 Django 中使用 order_by() 方法以降序从查询集中过滤项目

order_by() 方法对您的结果进行排序。 默认顺序是我们将它们插入数据库时的顺序。

让我们看看获得默认排序是什么样子的。 首先,让我们获取所有对象。

simple.objects.all()

输出:

<QuerySet [<Simple:www.example.com>,<simple:www.baidu.com>,<www.example.com>,<www.example.com>,<google.com>,<apple.com>]>

如果我们想要不同的顺序,我们会使用 order_by() 。 我们可以使用 order_by() 而不是 all()

它将对所有结果进行操作。 如果我们在此之前有一个过滤器,它将首先运行,然后是 order_by()

现在,我们将传递一个字符串来指定要订购的内容。 例如,如果我们使用 order_by("id") 对其进行过滤,我们会得到相同的结果,因为它从最小的 id 开始并向上移动。

请参阅下面的代码。

simple.objects.order_by("id")

输出:

<QuerySet [<Simple:www.example.com>,<simple:www.baidu.com>,<www.example.com>,<example.com>,<google.com>,<apple.com>]>

我们在 id 前面使用 - 来反转它,所以它不会从最小的开始,而是从最大的 id 开始。 当我们运行它时,我们看到 www.apple.com 是我们查询集的第一项。

simple.objects.order_by("-id")

输出:

<QuerySet [<apple.com>,<google.com>,<example.com>,<www.example.com>,<simple:www.baidu.com>,<Simple:www.example.com>]>

我们还可以在其他列中使用 order_by()

假设我们有 url 列。 如果我们通过 url 来排序,我们可以使用下面的代码。

simple.objects.order_by("url")

输出:

<QuerySet [<apple.com>,<Simple:example.com>,<google.com>,<www.example.com>,<www.example.com>,<simple:www.baidu.com>]>

由于它是一个字符串字段,它将按字母顺序排列。 我们可以通过简单地将 - 放在前面来按降序过滤它。

在我们的查询集中,我们得到第一个项目,www.baidu.com。

simple.objects.order_by("-url")

输出:

<QuerySet [<simple:www.baidu.com>,<www.example.com>,<www.example.com>,<google.com>,<Simple:example.com>,<apple.com>]>

通常,当可能有两列可能具有准确的顺序时,我们会有多个 order_by() 。 让我们看一下数字列,它有两个 10 数字和一些不同的数字。

simple.objects.order_by("number")

输出:

<QuerySet [<apple.com>,<Simple:example.com>,<google.com>,<www.example.com>,<www.example.com>,<simple:www.baidu.com>]>

我们可以看到 apple.com 排在第一位,因为数字“2”跟在同一行后面。

如果我们想强制执行更严格的排序,我们可以将另一个选项附加到 order_by() 。 首先,我们将按号码订购,然后按网址订购。

simple.objects.order_by("number","url")

如果我们想限制结果,比如前三个,我们可以使用以下语法。

simple.objects.order_by("-id")[:3]

输出:

<QuerySet [<apple.com>,<google.com>,<example.com>]>

现在,我们只有降序排列的查询集的三个项目。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便