Django框架中数据的连锁查询和限制返回数据的方法

 更新时间:2015年07月17日 11:32:10   投稿:goldensun  
这篇文章主要介绍了Django框架中数据的连锁查询和限制返回数据的方法,Django是Python重多高人气框架中最为著名的一个,需要的朋友可以参考下

连锁查询

通常我们需要同时进行过滤和排序查询的操作。 因此,你可以简单地写成这种“链式”的形式:

>>> Publisher.objects.filter(country="U.S.A.").order_by("-name")
[<Publisher: O'Reilly>, <Publisher: Apress>]

你应该没猜错,转换成SQL查询就是 WHERE 和 ORDER BY 的组合:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE country = 'U.S.A'
ORDER BY name DESC;

限制返回的数据

另一个常用的需求就是取出固定数目的记录。 想象一下你有成千上万的出版商在你的数据库里, 但是你只想显示第一个。 你可以使用标准的Python列表裁剪语句:

>>> Publisher.objects.order_by('name')[0]
<Publisher: Apress>

这相当于:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
ORDER BY name
LIMIT 1;

类似的,你可以用Python的range-slicing语法来取出数据的特定子集:

>>> Publisher.objects.order_by('name')[0:2]

这个例子返回两个对象,等同于以下的SQL语句:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
ORDER BY name
OFFSET 0 LIMIT 2;

注意,不支持Python的负索引(negative slicing):

>>> Publisher.objects.order_by('name')[-1]
Traceback (most recent call last):
 ...
AssertionError: Negative indexing is not supported.

虽然不支持负索引,但是我们可以使用其他的方法。 比如,稍微修改 order_by() 语句来实现:

>>> Publisher.objects.order_by('-name')[0]


相关文章

  • Django压缩静态文件的实现方法详析

    Django压缩静态文件的实现方法详析

    最近在学习Django配置静态文件,下面这篇文章主要给大家介绍了关于Django压缩静态文件的实现方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-08-08
  • Python制作可视化报表的示例详解

    Python制作可视化报表的示例详解

    在数据展示中使用图表来分享自己的见解,是个非常常见的方法。这也是Tableau、Power BI这类商业智能仪表盘持续流行的原因之一。本文主主要介绍了一个用Python制作可视化报表的案例,感兴趣的可以学习一下
    2022-02-02
  • Datawhale练习之二手车价格预测

    Datawhale练习之二手车价格预测

    此篇文章是关于Datawhale练习,代码完整,但由于该数据集中数据特征较少(39维),以下可作为少量特征情况下的分析。当特征数目过大(成千上万)时,需要继续学习。需要的朋友可以参考下
    2021-04-04
  • python 求定积分和不定积分示例

    python 求定积分和不定积分示例

    今天小编就为大家分享一篇python 求定积分和不定积分示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python基于wordcloud及jieba实现中国地图词云图

    Python基于wordcloud及jieba实现中国地图词云图

    这篇文章主要介绍了Python基于wordcloud及jieba实现中国地图词云图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python中MySQL数据迁移到MongoDB脚本的方法

    Python中MySQL数据迁移到MongoDB脚本的方法

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本文给大家介绍Python中MySQL数据迁移到MongoDB脚本的方法,需要的朋友参考下
    2016-04-04
  • python实现文件分片上传的接口自动化

    python实现文件分片上传的接口自动化

    这篇文章主要为大家详细介绍了python实现文件分片上传的接口自动化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Python3中的列表生成式、生成器与迭代器实例详解

    Python3中的列表生成式、生成器与迭代器实例详解

    这篇文章主要介绍了Python3中的列表生成式、生成器与迭代器,结合实例形式详细分析了Python3列表生成式、生成器与迭代器相关概念、功能、使用方法及操作注意事项,需要的朋友可以参考下
    2018-06-06
  • Python 处理带有 \u 的字符串操作

    Python 处理带有 \u 的字符串操作

    这篇文章主要介绍了Python 处理带有 \u 的字符串操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python之yield表达式学习

    python之yield表达式学习

    这篇文章主要介绍了python之yield表达式学习,python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西,需要的朋友可以参考下
    2014-09-09

最新评论