问题标签 [sqlalchemy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 SQLAlchemy 声明性语法指定关系?
我找不到有关如何使用 SQLAlchemy 的声明性语法指定关系的任何适当文档。它不受支持吗?也就是说,我应该使用“传统”语法吗?
我正在寻找一种在更高级别指定关系的方法,避免与外键等混淆。我只想声明“addresses = OneToMany(Address)”并让框架处理细节。我知道Elixir 可以做到这一点,但我想知道“普通”SQLA 是否也可以做到。
谢谢你的帮助!
python - How to find out if a lazy relation isn't loaded yet, with SQLAlchemy?
With SQLAlchemy, is there a way to know beforehand whether a relation would be lazy-loaded?
For example, given a lazy parent->children relation and an instance X of "parent", I'd like to know if "X.children" is already loaded, without triggering the query.
python - 如何将自动过滤器添加到与 SQLAlchemy 的关系中?
我正在使用 SQLAlchemy 0.5rc,并且我想向关系添加一个自动过滤器,以便每次尝试获取该关系的记录时,如果它们被标记为“逻辑上已删除”,它将忽略“远程”记录"(子表的布尔字段)
例如,如果一个对象“父”有一个“子”关系,它有 3 条记录,但其中一条在逻辑上被删除,当我查询“父”时,我希望 SQLA 获取只有两个子的父对象。 .
我应该怎么做?通过向关系的primaryjoin参数添加“and”条件?(例如“ Children.parent_id == Parent.id and Children.logically_deleted == False
”,但是这样写“and”是否正确?)
编辑:
我设法以这种方式做到了
但是有没有办法将字符串用作primaryjoin?
python - 使用 SQLAlchemy ORM 高效更新数据库
我正在启动一个新应用程序并考虑使用 ORM——特别是 SQLAlchemy。
假设我的数据库中有一个“foo”列,我想增加它。在直接的 sqlite 中,这很容易:
我想出了等效的 SQLAlchemy SQL-builder:
这有点慢,但没有太多。
这是我对 SQLAlchemy ORM 方法的最佳猜测:
这样做是正确的,但它需要的时间是其他两种方法的不到 50 倍。我认为那是因为它必须先将所有数据带入内存,然后才能使用它。
有没有办法使用 SQLAlchemy 的 ORM 生成高效的 SQL?或者使用任何其他python ORM?还是我应该回去手动编写 SQL?
python - Postgres中'money'和'OID'的sqlalchemy等效列类型是什么?
Postgres 中“money”和“OID”列类型的 sqlalchemy 等效列类型是什么?
python - 组织包含 SQLAlchemy 模型的文件夹的最佳方式
我在工作中使用 SQLAlchemy,它做得很好。现在我正在考虑最佳实践。
现在,我创建了一个包含所有 SQLA 内容的模块:
现在,我真的不知道这是否是最好的方法。我想以细粒度加载类,并确保只与数据库等创建一个连接。
在这里,所有的类都是分开的,但都是 import _config ,我想知道这是否是一件好事。
更重要的是,我希望能够创建可以独立存储的模型类的子类,而不会每次都弄乱映射器。我怎样才能做到这一点 ?
现在我只是把它们放在同一个文件中,我必须创建另一个映射器,但第一个映射器仍然每次都会被调用。如果我必须导入父类,也会发生同样的情况,因为映射器是在导入时触发的。如果我不使用类来访问数据,每次映射它会不会过热?
我也想避免使用 Elixir,拜托。
python - 如何在算术表达式的结果上放置 SQLAlchemy 标签?
我如何将这样的东西翻译成 SQLAlchemy?
我知道该怎么做:
...但我不确定将“.label()”方法调用放在下面的位置:
python - 如何在 SQLAlchemy 中按算术表达式排序?
我如何将这样的东西翻译成 SQLAlchemy?
python - 使用 ORM 的带有 count、group_by 和 order_by 的 SQLAlchemy
我有几个函数需要使用 count()、group_by 和 order_by 进行一对多连接。我正在使用 sqlalchemy.select 函数来生成一个查询,该查询将返回一组 id,然后我对其进行迭代以对各个记录进行 ORM 选择。我想知道是否有一种方法可以在单个查询中使用 ORM 来做我需要的事情,这样我就可以避免进行迭代。
这是我现在正在做的一个例子。在这种情况下,实体是位置和指南,一对多映射。我正在尝试获取按与其相关的指南数量排序的顶级位置列表。
解决方案
我找到了最好的方法来做到这一点。只需提供 afrom_statement
而不是 afilter_by
或一些这样的。像这样:
python - Mysql连接池问题:值得吗?
我记得听说 mysql 中的连接过程与其他 RDBMS 相比设计得非常快,因此如果启用连接池,使用提供连接池 (SQLAlchemy) 的库实际上对您没有太大帮助。
有人对这个有经验么?
我对启用它持怀疑态度,因为如果某些代码对数据库连接执行有状态的操作并且(可能是错误地)没有自行清理,那么通常会在关闭连接时清理的状态将改为传播到获得回收连接的后续代码。