python - SQLalchemy - 迭代所有映射表

标签 python mysql python-3.x flask sqlalchemy

我目前正在 Flask 中创建一个 Web 应用程序,并使用 SQL-alchemy(不是 Flask 版本)来处理对 MySQL 数据库的读取和写入。

我有大约 15 个不同的表,每个表映射到不同的声明性类,但是该应用程序仍处于测试阶段,因此这个数字可能会增加。

我想要一种方法来迭代每个表并在每个表上运行相同的命令。这是更新功能的一部分,管理员可以更改书籍的名称,此名称更改应反射(reflect)在引用该书籍的所有其他表中。

有没有办法迭代所有 SqlAlchemy 表?

谢谢!

最佳答案

不太确定你想在这里实现什么,但如果你使用声明性基础,你可以尝试这样的事情:

tables = Base.__subclasses__()
for t in tables:
    rows = Session.query(t).all()
    for r in rows:
        ... do something ...

这通过列出 Base 的子类来获取所有表。然后它依次查询每个表中的所有内容并循环遍历选定的行。

但是,我不太明白你为什么要这样做。您如何描述您的问题是,您应该有一个 Book 表,并且所有其他人如果想要引用书籍都链接到它。这将是关系模型,而不是在每个表中拖动图书信息并尝试像这样手动管理它们。

关于python - SQLalchemy - 迭代所有映射表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956943/

相关文章:

python - 属性(property)没有按预期工作

python - 如何在浏览器中直接执行 Blockly 生成的 Python 代码?

php - PHP 中使用 UTF8 的 hmtlspecialchars 时不显示变音符号

Mysql忍者技巧

python - 在Python中, "A requirement that should be satisfied by the function before it ends."是后置条件的正确定义吗?

python - django.core.exceptions.AppRegistryNotReady : Apps aren't loaded yet launching debug on pycharm

python - 如何使用 NLTK pos 标签获得更好的结果

python - 如何存储人脸的多个特征并求出距离?

C# MySqlConnector 6.4.4 LAST_INSERT_ID() 作为 INT64?

python - 无法从字节转换为 int