当前位置: 首页 > news >正文

django中的filter详解

filter (数据过滤)

我们很少会一次性从数据库中取出所有的数据;通常都只针对一部分数据进行操作。 在Django API中,我们可以使用`` filter()`` 方法对数据进行过滤:

>>> Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]

filter() 根据关键字参数来转换成 WHERE SQL语句。 前面这个例子 相当于这样:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE name = 'Apress';

 你可以传递多个参数到 filter() 来缩小选取范围:

>>> Publisher.objects.filter(country="U.S.A.", state_province="CA")
[<Publisher: Apress>]

多个参数会被转换成 AND SQL从句, 因此上面的代码可以转化成这样:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE country = 'U.S.A.'
AND state_province = 'CA';

注意,SQL缺省的 = 操作符是精确匹配的, 其他类型的查找也可以使用:

>>> Publisher.objects.filter(name__contains="press")
[<Publisher: Apress>]

namecontains 之间有双下划线。和Python一样,Django也使用双下划线来表明会进行一些魔术般的操作。这里,contains部分会被Django翻译成LIKE语句:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE name LIKE '%press%';

 

相关文章:

  • CDN学习笔记二(技术详解)
  • macOS 中的 Rootless 机制
  • python环境搭建-设置PyCharm软件的配色方案和Python解释器
  • mod_fastcgi和mod_fcgid的区别
  • [摘录]第六章 用负激励促进新陈代谢
  • 4. 路由到控制器 - Laravel从零开始教程
  • 给MVC来一个谬论
  • linux 查看 cpu 和内存的命令 - top
  • JDK 环境搭建
  • Windows下编译使用Aliyun OSS PHP SDK
  • KNN算法与Kd树
  • 2D空间中求一点是否在多边形内
  • ceph基础操作记录
  • zabbix企业应用之定时获取监控数据做报表
  • SQLSERVER之“sqlserver索引、视图、存储过程和触发器的使用”
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • angular学习第一篇-----环境搭建
  • Bootstrap JS插件Alert源码分析
  • C++类的相互关联
  • C++类中的特殊成员函数
  • ES6--对象的扩展
  • Java多线程(4):使用线程池执行定时任务
  • JS 面试题总结
  • 大型网站性能监测、分析与优化常见问题QA
  • 多线程事务回滚
  • 目录与文件属性:编写ls
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 双管齐下,VMware的容器新战略
  • 算法-图和图算法
  • 微信支付JSAPI,实测!终极方案
  • 在Unity中实现一个简单的消息管理器
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • # include “ “ 和 # include < >两者的区别
  • #QT项目实战(天气预报)
  • (3)llvm ir转换过程
  • (4)logging(日志模块)
  • (C语言)fread与fwrite详解
  • (C语言)二分查找 超详细
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (理论篇)httpmoudle和httphandler一览
  • (南京观海微电子)——COF介绍
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)mysql使用Navicat 导出和导入数据库
  • .htaccess配置常用技巧
  • .Net - 类的介绍
  • .Net 垃圾回收机制原理(二)
  • .net实现客户区延伸至至非客户区
  • .NET下的多线程编程—1-线程机制概述
  • .NET项目中存在多个web.config文件时的加载顺序