首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >子负载上的SQLAlchemy滤波器

子负载上的SQLAlchemy滤波器
EN

Stack Overflow用户
提问于 2015-03-11 10:24:13
回答 1查看 2.9K关注 0票数 5

假设以下模型,我们将如何通过subqueryload装载与订单相关的货物,并根据is_refunded的状态进行过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class Shipment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    shipment = db.Column(MutableDict.as_mutable(JSONB))
    is_refunded = db.Column(db.Boolean, server_default="false")
    order_id = db.Column(db.Integer, db.ForeignKey('order.id'))
    order = db.relationship('Order', backref='shipments')

我希望得到一些类似于以下内容的内容,但这不是有效的语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
orders = db.session.query(Order).options(
    db.subqueryload(Order.shipments).filter(Shipment.is_refunded==False))

一些背景:

  • 订购装船是一对多的关系。
  • 根据业务规则,虽然可能有许多与订单相关的货件,但只能有一批“活动”货件。即。所有其他货物的is_refunded状态将设置为True
  • 因此,我只想提及在遍历所有订单时“活动”的货物。
  • 由subqueryload返回的标准结果并返回所有货物。
  • 我正在使用SQLAlchemy的最新稳定版本。

如果需要澄清,请告诉我。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 11:56:21

有趣的是,我一直在想一种简单的“选项”来做这种事情,所以上面的语法很有趣。

但是,目前,通过relationship()建立的属性契约是,它们只直接使用在relationship()中设置的标准。在使用所提供的加载程序服务的同时,没有简单的方法可以动态地更改标准。

直接使用带有自定义条件的加载器服务的两个选项是,要么使用连接写出查询,然后将其与渴望组合(这适用于联合加载,而不是真正的子查询负载),要么使用满足所需条件的新关系()(通过主连接建立)。

另一个用于subqueryload的选项是自己发出相同的查询,而不是实际使用subqueryload选项。这里的特殊技术是能够使用查询的结果填充集合,这样就不会将它们记录为更改事件。为此使用了价值函数,并通过一个示例说明了子查询负载的“原始”形式(在其内置之前),在DisjointEagerLoading上说明了这一点。在绝大多数简单情况下,将自己的"subqueryload“滚动到固定实体并不是很困难,该技术在该示例中得到了说明。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28994497

复制
相关文章
SQLAlchemy SQLAlchemy
SQLAlchemy 1.1.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 安装 pip install sqlalchemy 组成部分 Engine,框架的引擎 Connection Pooling ,数据库连接池 Dialect,选择连接数据库的DB API种类 Schema/Types,架构和类型 SQL Exprr
zhang_derek
2018/05/30
2.3K0
SQLAlchemy
SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
小小咸鱼YwY
2020/06/19
3.2K0
腾讯云上的负载均衡
Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。
用户1880875
2021/08/03
2.8K0
SQLAlchemy
数据库的默认编码为 latin1,修改数据表的默认编码是 MySQL 的一个基本操作,这是需要预先掌握的。不过学习本课程时并不需要这么做,在创建数据库的同时添加 CHARACTER SET = UTF8 指定编码格式即可。我们要创建课程相关的映射类以及对应的数据表,现在先创建所需数据库 study ,编码格式为 UTF-8 :
py3study
2020/01/06
1.1K0
sqlalchemy和flask-sqlalchemy的几种分页方法
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10;所有分页查询不可以再跟first(),all()等 1.用offset()设置索引偏移量,limit()限制取出量 db.session.query(User.name).filter(User.email.like('%'+email+'%')).limit(page_size).offset((page_index-1
用户1214487
2018/04/17
2.5K0
FIR数字滤波器设计(上)
今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第一篇,数字滤波器介绍,包括数字滤波器概述、分类以及设计指标。话不多说,上货。
FPGA技术江湖
2020/12/30
8340
SQLAlchemy使用
SQLAlchemy是Python语言的一款流行的ORM(Object Relational Mapper)框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,即将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
职场亮哥
2020/10/10
8640
SQLAlchemy中的自引用
SQLALCHEMY采用adjacency list pattern来表示类的自引用。 例如,对于类Node自引用: class Node(Base): __tablename__='node' id=Column(Integer,primary_key=True) parent_id=Column(Integer,ForeignKey('node.id')) data=Column(String(50)) children=relationship('Node') 对
用户1214487
2018/03/28
1.5K0
DC电源模块在电容滤波器上的设计
DC电源模块在电容滤波器上的设计是电源管理系统中非常重要的一部分,其目的是为了确保电源输出电压的稳定性和纹波尽可能小。在设计中,需要考虑到电源负载的变化和变压器等电源配件的电磁干扰等因素。下面我们详细介绍一下电容滤波器设计中的相关知识。
河北稳控科技
2023/10/09
2500
DC电源模块在电容滤波器上的设计
sqlalchemy和flask-sqlalchemy几种分页操作
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10;所有分页查询不可以再跟first(),all()等 1.用offset()设置索引偏移量,limit()限制取出量 db.session.query(User.name).filter(User.email.like('%'+email+'%')).limit(page_size).offset((page_index-1
用户1558882
2018/04/03
2.1K0
sqlalchemy的基本使用
https://docs.sqlalchemy.org/en/14/orm/session_basics.html#querying-1-x-style
崔哥
2023/10/23
3810
KubeVirt上的虚拟化GPU工作负载
在这段2019年北美KubeCon视频中,Red Hat的David Vossel和NVIDIA的Vishesh Tanksale探索了KubeVirt背后的架构,以及NVIDIA如何利用该架构为Kubernetes上的GPU工作负载提供动力。以NVIDIA的GPU工作负载为例进行研究,它们提供了一个重点视图,以了解主机设备透传是如何通过KubeVirt完成的,并提供了一些性能指标,将KubeVirt与独立KVM进行比较。
CNCF
2020/02/20
3.9K0
KubeVirt上的虚拟化GPU工作负载
SQLAlchemy - Column详解
过滤是数据  提取的一个很重要的功能,以下对一些常用的过滤条件进行详解,并且这些过滤条件都是只能通过filter方法实现的:
stys35
2019/11/20
1.2K0
ORM和SQLAlchemy
(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。 如下图可以看出,如果后台直接访问数据库的话,使用不同的数据库的话,每次的SQL语句都需要重写
zx钟
2019/07/19
8050
FIR数字滤波器设计(上)
今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第一篇,数字滤波器介绍,包括数字滤波器概述、分类以及设计指标。话不多说,上货。
FPGA技术江湖
2021/04/21
8140
FIR数字滤波器设计(上)
sqlalchemy ORM
orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。
用户1679793
2018/12/27
7090
常用滤波器设计之低通滤波器、高通滤波器、带通滤波器、带阻滤波器
使用说明:将下列代码幅值然后以m文件保存,文件名要与函数名相同,这里函数名:lowp。
全栈程序员站长
2022/09/05
2K0
常用滤波器设计之低通滤波器、高通滤波器、带通滤波器、带阻滤波器
SQLAlchemy总结+
Review: 一、Mysql 操作 创建一个test库 create database test; 授权一个用户 grant all privileges on *.* to 'asd'@'%' identified by 'awerfsdf123'; 创建表 create table student(id int not null); 查询 select * from tabel_name where 条件1 and 条件2 增加 insert into table_name (id, name
老七Linux
2018/05/31
2.3K0
python的SQLAlchemy简单使用
SQLAlchemy应用了ORM技术(Object-Relational Mapping),它能把关系数据库的表结构映射到对象上。
灯珑LoGin
2022/10/31
4700
在kubernetes上运行WASM负载
WASM一般用在前端业务中,但目前有扩展到后端服务的趋势。本文使用Krustlet 将WASM服务部署到kubernetes。
charlieroro
2021/05/10
1.5K0
在kubernetes上运行WASM负载

相似问题

SQLAlchemy:连接负载和子负载行为的区别

11

对象上的Sqlalchemy滤波器

10

SQLAlchemy默认滤波器

10

基于逻辑的SQLAlchemy滤波器

211

SQLAlchemy滤波器in_算子

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文