问题标签 [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.

0 投票
1 回答
248 浏览

python - 使用 SQLAlchemy 急切加载一组对象的问题

我正在使用 Turbogears2 和 SQLAlchemy 开发一个 webapp。我有两个映射表 O1 和 O2。O2 在“ones”中有一个 O1 的排序列表。在某些时候,我想查询所有 O2 和引用的 O1。

不幸的是,下面的查询失败了,因为表 O2 在查询中具有别名,并且 order_by 短语引用的列不再已知。

我想知道如何解决这个问题,如果可能的话,保持声明性语法。

0 投票
2 回答
11919 浏览

python - SQLAlchemy 中使用的“SQL 表达式语言”中是否支持 IN 运算符?

是否可以在 SQLAlchemy 中使用的“SQL 表达式语言”中表达如下查询?

我想避免用纯文本编写 WHERE 子句。有没有一种类似于我下面的示例或不使用纯文本的方式来表达这一点?

0 投票
2 回答
4220 浏览

python - 自动过滤 SQLAlchemy 查询的正确方法?

我刚刚用 sqlalchemy 从 CRM 应用程序中反省了一个非常讨厌的模式。所有表都有一个已删除的列,我想自动过滤所有标记为已删除的实体和关系。这是我想出的:


它是这样使用的:

EmailInfo 是映射到电子邮件与其相关的其他模块之间的连接表的类。

这是一个映射器的例子:


这给了我我想要的,因为我已经过滤掉了所有已删除的联系人。我也可以在我的映射器中将它用作 dynamic_loader 的 query_class 参数 - 但是......

  1. 有没有更好的方法来做到这一点,我并不喜欢像我一样探索像 Query 这样的复杂类的内部结构。
  2. 有没有人以不同的方式解决了这个问题,他们可以分享?
0 投票
3 回答
2400 浏览

python - 覆盖 sqlalchemy 反射表中的默认值

我已经反映了现有 mysql 数据库中的大量表。我想表达的是,任何表中具有特定名称的任何列都默认为 datetime.now()。然而,天真地循环遍历表和列,只是在我发现有特定名称的那些上设置默认值是行不通的,当做 session.add(); session.flush() 我收到以下错误:

这似乎与对 _set_parent 的调用有关(以及 sqlalchemy.schemaself._init_items(*toinit)中第 721 行的 this。

有谁知道是否有一种方法可以做到这一点,而无需遍历我所有的反射表并在每个地方添加 Column(..) 行都做同样的事情或诉诸非常丑陋的黑客?

0 投票
4 回答
6313 浏览

python - 元组列表中带有元组的 Sqlalchemy 复杂 in_ 子句

我正在尝试找到一种方法使 SQLAlchemy 生成以下形式的查询:

这可能吗?

如果没有,关于模仿它的方法有什么建议吗?

0 投票
2 回答
3715 浏览

python - 使用 SqlAlchemy 选择和连接函数创建 SQL 查询

我有两个表“tags”和“deal_tag”,表定义如下,

我想选择标签 ID、标签名称和交易数量(每个标签的交易数量)。示例查询是

如何使用 SqlAlchemy 选择和连接函数创建上述查询?

0 投票
2 回答
437 浏览

python - 如何使用 SQLAlchemy 会话确定一个 PGArray 是否包含在另一个中?

我有一个像这样的 SqlAlchemy 表:

它被映射到这样的对象:

我想选择给定节点的任何子节点,所以我正在寻找的是看起来像这样的 SQL(对于 pk=2 的父节点):

这是我用来尝试获取上述 SQL 的 SqlAlchemy/Python 代码,但运气不佳:

但这是我最终得到的 SQL(请注意 where 子句中 treeItems 表名周围没有引号):

所以,现在的问题:

有没有比使用 text() 表达式更好的方法/SqlAlchemy 中是否有可以使用 PGArray 执行 <@ 的运算符或表达式?

如果我必须使用 text() 表达式,如何让引号显示在我的表名周围?

谢谢大家!

0 投票
3 回答
22423 浏览

python - SQLAlchemy 的 Unicode 问题

我知道我在从 Unicode 转换时遇到问题,但我不确定它发生在哪里。

我正在从 HTML 文件目录中提取有关最近一次欧洲旅行的数据。一些位置名称包含非 ASCII 字符(例如 é、ô、ü)。我正在使用正则表达式从文件的字符串表示中获取数据。

如果我在找到它们时打印位置,它们会打印字符,因此编码必须没问题:

我使用 SQLAlchemy 将数据存储在 SQLite 表中:

我遍历文件并将每个文件中的数据插入数据库:

我在每个插入上看到以下警告:

当我尝试对表格做任何事情时,例如:

我得到:

我希望能够正确存储并返回原始字符完整的位置名称。任何帮助将非常感激。

0 投票
7 回答
35832 浏览

python - SqlAlchemy 中的动态表创建和 ORM 映射

我对使用关系数据库还很陌生,所以我更喜欢使用好的 ORM 来简化事情。我花时间评估不同的 Python ORM,我认为 SQLAlchemy 是我需要的。然而,我已经走到了精神上的死胡同。

我需要创建一个新表来与我在应用程序的播放器表中创建的每个播放器实例一起使用。我想我知道如何通过元数据更改表的名称然后调用 create 函数来创建表,但我不知道如何将其映射到新的动态类。

有人可以给我一些提示来帮助我克服大脑冻结吗?这甚至可能吗?

注意:如果我的要求更容易实现,我对 Python 中的其他 ORM 持开放态度。请告诉我如何 :-)

0 投票
2 回答
4852 浏览

python - 如何使用 sqlalchemy 编写自己的聚合函数?

如何使用 SQLAlchemy 编写自己的聚合函数?作为一个简单的例子,我想使用 numpy 来计算方差。使用 sqlite 它看起来像这样: