使用SQL Alchemy列出现有模式的表中的列

时间:2017-07-04 09:00:59

标签: python mysql sqlalchemy automap

(我认为)这个简单的问题 - 如何使用SQL Alchemy automap扩展来列出模式中表的列 - 重要的是 - 现有的mysql数据库?

这是我一直在尝试的(试图在这里关注文档:  Automap):

metadata = MetaData()
metadata.reflect(engine)

Base = automap_base(metadata=metadata)
Base.prepare()

从这一点开始,我可以'看到'所有表格(例如Base.classes.table1Base.classes.table2等),并且可以“看到”特定表中的列作为每个表的属性(例如{ {1}},Base.classes.table1.column1)。

问题基本上是有一种简单的方法列出表中的列吗? (或者模式中的表格确实?)..与Base.classes.column2类似的东西...也许我在这里遗漏了明显/基本的东西。

一个或许相关的评论 - 我已经成为mysql管理员/用户和python用户已有好几年了,而我只是将我的脚趾浸入ORM世界。也许我只是很慢,但我发现SQL Alchemy的文档非常难以理解 - 似乎有大量的文档(以及全新的词汇表)......或者我可能只是在想ORM完全错误的方式 - 所以任何基本指南等 - 不是来自SQL Alchemy - 将不胜感激。也许就像“SQL用户的炼金术”一样 - 如果存在这样的事情......

1 个答案:

答案 0 :(得分:1)

答案基本上包含在IljaEverilä的问题链接中。 将标记为重复 - 但这是我的问题的直接答案:

2017-03-26 05:00:02,417将为您提供列信息(作为SQL Alchemy Base.classes.table1.__table__.columns对象,它有一些方法)。

其中一种方法将产生一个列名列表,具体为:

ImmutableColumnCollection

...基本上我缺少的主要是“魔术”Base.classes.table1.__table__.columns.keys()属性/对象。