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


Posted in Python onJuly 17, 2015

连锁查询

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

>>> 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]

Python 相关文章推荐
使用python搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python入门_学会创建并调用函数的方法
May 16 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
基于Python List的赋值方法
Jun 23 Python
python生成九宫格图片
Nov 19 Python
Python3.5文件修改操作实例分析
May 01 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
python如何实现异步调用函数执行
Jul 08 Python
python flask框架快速入门
May 14 Python
Python面试不修改数组找出重复的数字
May 20 Python
Django中对数据查询结果进行排序的方法
Jul 17 #Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 #Python
Python的Django框架中的数据过滤功能
Jul 17 #Python
在Python的Django框架中更新数据库数据的方法
Jul 17 #Python
在Django框架中运行Python应用全攻略
Jul 17 #Python
Python的Django框架中的数据库配置指南
Jul 17 #Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 #Python
You might like
用PHP实现验证码功能
2006/10/09 PHP
PHP新手上路(十四)
2006/10/09 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
Django中使用locals()函数的技巧
2015/07/16 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
晚宴邀请函范文
2014/01/15 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
集中整治工作方案
2014/05/01 职场文书
节约能源标语
2014/06/17 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
小英雄雨来观后感
2015/06/09 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书