问题标签 [python-elixir]

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 投票
8 回答
35243 浏览

python - 从 sqlalchemy 转储 csv

出于某种原因,我想以 csv 文件的形式从数据库(sqlite3)中转储一个表。我正在使用带有 elixir 的 python 脚本(基于 sqlalchemy)来修改数据库。我想知道是否有任何方法可以将我使用的表格转储到 csv。

我见过 sqlalchemy序列化程序,但它似乎不是我想要的。我做错了吗?我应该在关闭我的 sqlalchemy 会话后调用sqlite3 python 模块来转储到文件吗?还是我应该用自制的东西?

0 投票
1 回答
834 浏览

sql - SQLAlchemy 和复杂查询

我必须为现有应用程序实现 ACL。
所以我将 a usergroupgroupmembers表添加到数据库中。我通过关联表groupmembers定义了用户
之间的多对多关系。 为了保护应用程序的一些资源(即item),我添加了一个额外的关联表auth_items,它应该用作组/用户与特定item之间的 ManyToMany 关系的关联表。

项目有以下列:

  • user_id --> 用户表
  • group_id --> 组表
  • item_id --> 项目表

至少设置了user_idgroup_id列。因此,可以为组或用户定义对特定项目的访问权限。

我使用 AssociationProxy 来定义用户/组和项目之间的关系。

我现在想显示用户可以访问的所有项目,但我很难做到这一点。使用以下标准:

  • 应显示用户拥有的所有项目(item.owner_id = user.id)
  • 应显示所有公共项目(item.access = public)
  • 应显示用户有权访问的所有项目 (auth_item.user_id = user.id)
  • 应该显示用户组有权访问的所有项目。

前三个标准非常简单,但我很难做到第四个。

这是我的方法:

第三个标准产生错误。

我实际上不确定这是否是一个好方法。
过滤多对多关系时最好的方法是什么?
如何根据另一个列表/关系过滤多对多关系?

顺便说一句,我正在使用最新的 sqlalchemy (6.0) 和 elixir 版本

感谢您的任何见解。

0 投票
1 回答
182 浏览

python - 使用 Elixir,如何获取自引用关系的表对象以执行插入?

我将 Elixir 与 SQLite 一起使用,我想按照文档执行多个插入:

http://www.sqlalchemy.org/docs/05/sqlexpression.html#executing-multiple-statements

但是,我的 ManyToMany 关系是自引用的,我不知道从哪里获取insert()对象。任何人都可以帮忙吗?

0 投票
2 回答
2064 浏览

python - SQLAlchemy 和 Elixir?

我一直在使用 django ORM,它很好也很简单,但是这次我正在做一个桌面应用程序,我发现了 SQLAlchemy,但我不确定它是否与 Elixir 一起使用。你怎么看?真的有用吗?

0 投票
2 回答
491 浏览

python - 灵药过时了吗?

我的 sqlalchemy 是 0.6.3,elixir 是 0.7.1

我创建了一个扩展模型类Entity

并将用户保存为:

它报告Session has no attribute 'save'

我查看了长生不老药的代码,发现它调用了sqlalchemy.org.session.Session#save(),但那里没有save()方法。

那么,已经elixir过时了,我们不应该再使用它了吗?

0 投票
1 回答
1038 浏览

python - 删除 ManyToMany 中间表中的行

我有两个表,它们之间存在多对多关系。有时我需要刷新数据库,以便从两个表中删除元素。但是,已删除行之间的关系仍存储在自动创建的中间表中。

为了澄清问题,这里有一个小代码:

sqlite 数据库的转储现在包含:

我希望在删除 a1 或 b1 时清空“b_alist__a_blist”表。

如果不使用 SQLite 并不总是支持的 ON DELETE 语句,这是否可行?

因为我当然不是唯一一个使用与 Elixir 的多对多关系的人,所以这个问题的解决方案可能是微不足道的。

上面给出的代码会生成 sqlalchemy 警告:

sqlalchemy/orm/properties.py:842:SAWarning:在 B.alist 上,当未设置 single_parent 时,多对多或多对一关系不支持删除孤儿级联。在 relationship() 上设置 single_parent=True。
self._determine_direction()

这只是因为我现在随机尝试在这个 ManyToMany 关系中添加级联选项。这应该表明 delete-orphan 不是正确的选项。

0 投票
1 回答
265 浏览

python - Camelot 和非 Camelot 应用程序之间的共享模型

我想在不同的Elixir / SQLAlchemy应用程序之间共享我的数据模型,其中一个是Camelot UI 和其他东西,如 Web 界面等。它们都将连接到同一个底层数据库。

据我所知,要构建一个 Camelot 应用程序,我的模型会这样做from camelot import blah,这将阻止它在没有安装 Camelot 的任何环境中运行。

我想知道是否有推荐的方法/最佳实践来做到这一点。这个想法当然是为我的模型维护一个单一的代码库,而不是在不同应用程序之间以细微的差异来复制它(比如从这里从 SA/Elixir 导入,从那里从 Camelot 导入,等等)。

我的项目目前使用模型/ python 包进行布局:

init .py 看起来像这样:

而python模块foo.py、bar.py等实际上实现了各个部分。这些模块中的每一个都是这样开始的:

一个想法可能是做类似的事情:

这实际上是一个主意还是我错过了什么?另外,理想情况下,我会在某个中心位置(例如 in )执行那种“环境初始化”的工作model/__init__.py,但是我如何将导入传递给底层模块呢?

0 投票
1 回答
353 浏览

python - 在 Elixir 上添加新列

我使用 Elixir 作为 MySQL 数据库的 ORM。我想将新列添加到我的架构中。/ 如何将原始数据保留在 MySQL 中并自动更新架构?这个概念在 Ruby on rails 中称为迁移。

0 投票
3 回答
3964 浏览

python - 使用 Elixir 有什么好处

... vs 声明性 sqlalchemy ?

0 投票
3 回答
587 浏览

python - 在 Python Elixir 中编写更新语句

我使用 Elixir 作为 MySQL 数据库的 ORM,我在编写更新语句时遇到问题,例如:

这是我的 Elixir clsee

我应该怎么做?