pyDAL一个python的ORM(9) pyDAL的嵌套查询

这篇具有很好参考价值的文章主要介绍了pyDAL一个python的ORM(9) pyDAL的嵌套查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

假设有以下两个表:

db.define_table('person',Field('id', 'string'), Field(‘name', 'string'), Field(‘dept', 'string'))

db.define_table('things',Field('id', 'string'), Field(‘name', 'string'), Field(‘owner', 'string'))

一、使用belongs进行嵌套查询

我们查询要求:things表中属于marketing部门的东西:

前边我们已经提到,belongs还可以用作嵌套查询

rows = db(db.things.owner.belongs(db(db.person.dept == 'marketing')._select(db.person.name))).select()

红色部分就是一个嵌套,嵌套的select前记得加一个下划线_,

二、更清晰的书写规则

为了嵌套的条件更清晰,我们也可以这样书写,把嵌套单独拧出来写

owers = db(db.person.dept == 'marketing')._select(db.person.name)

rows = db(db.things.owner.belongs(owers)).select()

三、多重嵌套

当然有多个表时,可以多嵌套,假如还有一个表,

db.define_table('vendor',Field('id', 'string'), Field(‘name', 'string'), Field(‘sku', 'string'))

我们要查询marketing部门人员的东西的生产商:

owers = db(db.person.dept == 'marketing')._select(db.person.name)

things = db(db.things.owner.belongs(owers))._select(db.things.name)

vendors = db(db.vendor.sku.belongs(things)).select()文章来源地址https://www.toymoban.com/news/detail-821846.html

到了这里,关于pyDAL一个python的ORM(9) pyDAL的嵌套查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web2与Web3开发的不同之处

    Web2是引入交互功能的第二代互联网,也是我们今天所熟悉的。随着Web的不断发展,第三代互联网,也被称为Web3,正处于积极开发中。Web3引入了在区块链上运行的去中心化和无需许可的系统。但是Web2和Web3开发之间有什么区别呢?这对于从Web2转变到Web3的开发者是个契机,不仅

    2024年02月05日
    浏览(44)
  • 从Web2.0走向Web3.0还有多远?

    Web2.0时代给互联网带来了巨大的变革,让用户成为内容的创造者和共享者。然而,随着技术的不断发展和创新,我们正在逐渐迈向Web3.0时代,这将是一个更加去中心化、透明和安全的数字世界。那么,从Web2.0走向Web3.0还有多远呢? 1.Web2.0的特点与局限性 Web2.0时代的互联网以社

    2024年02月11日
    浏览(45)
  • IPFS与web2.0的简单比较

      对IPFS技术的好奇,源于2点 已有经验,原来做视频会议时有p2p的通话,多人会议就是多p2多p(基于WebRTC的SFU)。 web3.0的好奇,通过IPFS检验订正下自己设计一套网络系统的能力 历史成因 2008年中本聪对英国政府增发货币不满,认为国家不发币也可以规避通货膨胀带来的恶果,就

    2023年04月08日
    浏览(32)
  • 从Web2到Web3:区块链技术的未来前景

    随着互联网的发展, Web1.0、Web2.0 和 Web3.0 成为了人们口中津津乐道的话题。那么,这三种网络时代究竟有什么区别呢? Web1.0 是一个只读的时代 ,那个时候,用户只能浏览网页,无法进行互动和创作。 Web2.0 则是一个可读可写的时代 ,用户可以进行互动和创作,例如发布博客

    2024年02月15日
    浏览(56)
  • python装饰器嵌套基础

    python支持装饰器嵌套,即多个装饰器装饰同一个函数或方法。 用法 描述 @a_deco、@b_deco、@c_deco分别占一行,编写在同一个函数或方法的def语句上方。 从def开始,由近到远,依次执行装饰器@c_deco、@b_deco、@c_deco。 等价于 示例 描述 装饰器的包装函数,比如a_wrapper(),保存接收到

    2024年01月25日
    浏览(38)
  • 【Web2D/3D】Canvas(第三篇)

    1. 前言         canvas是HTML5新增元素,它是一个画板,开发人员基于它的2D上下文或webgl上下文,使用JS脚本绘制简单的动画、可交互画面,甚至进行视频渲染。         本篇介绍基于canvas的2D上下文绘制2D画面的一些方法和属性。 2. canvas元素         2D坐标系:左上点是坐标

    2024年02月19日
    浏览(33)
  • 什么是Web1.0时代、Web2.0时代、Web3.0时代?

       互联网的起源 。1969年美国的阿帕网的出现标志着互联网的诞生,而1973年第一台个人电脑The Xerox Alto的出现就预示了互联网将蓬勃生长,随之而来的就是我们迈入了信息时代。短短几十年的发展,接入互联网的人数呈现出爆炸式的增长,我们也从最初的Web1.0时代,进入

    2024年02月05日
    浏览(52)
  • 如何重塑Web3游戏营销?Web2的优秀游戏能否完成继承?

    未来Web3游戏的赢家将是那些首先专注于出色的游戏玩法,然后引入标记化或其他分散元素的游戏。Vice在最近一份关于Web3游戏的报告中写道:“目前Web3游戏的趣味性和功能性并不多。例如由于通证供应量膨胀,无法吸引新用户为老用户提供退出流动性,Axie Infinity已经陷入困

    2024年02月01日
    浏览(45)
  • 【python基础】复杂数据类型-字典(嵌套)

    有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为 嵌套 。我们可以在列表中嵌套字典、在字典中嵌套列表、在字典中嵌套字典。 我们可以把一个人的信息放在字典中,但是多个人的信息我们无法放在同一个字典中,所以就需要字典列表。 其语

    2024年02月08日
    浏览(41)
  • 让 Web3 认证拥有和 Web2 一样丝滑体验的技术路径

    目录 前言 让 Web3 认证拥有和 Web2 一样的体验 ERC 4337 以太坊账户抽象 Web3Auth UniPass  在 Web2 中,我们可以通过 1password、google 密码管理等程序帮助管理密钥。但助记词和私钥的使用大多比较强调离线备份,或者存放在硬件钱包里,或者采用更加安全的多签等技术。这些对于专业

    2023年04月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包