(我认为)这个简单的问题 - 如何使用SQL Alchemy automap扩展来列出模式中表的列 - 重要的是 - 现有的mysql数据库?
这是我一直在尝试的(试图在这里关注文档: Automap):
metadata = MetaData()
metadata.reflect(engine)
Base = automap_base(metadata=metadata)
Base.prepare()
从这一点开始,我可以'看到'所有表格(例如Base.classes.table1
,Base.classes.table2
等),并且可以“看到”特定表中的列作为每个表的属性(例如{ {1}},Base.classes.table1.column1
)。
问题基本上是有一种简单的方法列出表中的列吗? (或者模式中的表格确实?)..与Base.classes.column2
类似的东西...也许我在这里遗漏了明显/基本的东西。
一个或许相关的评论 - 我已经成为mysql管理员/用户和python用户已有好几年了,而我只是将我的脚趾浸入ORM世界。也许我只是很慢,但我发现SQL Alchemy的文档非常难以理解 - 似乎有大量的文档(以及全新的词汇表)......或者我可能只是在想ORM完全错误的方式 - 所以任何基本指南等 - 不是来自SQL Alchemy - 将不胜感激。也许就像“SQL用户的炼金术”一样 - 如果存在这样的事情......
答案 0 :(得分:1)
答案基本上包含在IljaEverilä的问题链接中。 将标记为重复 - 但这是我的问题的直接答案:
2017-03-26 05:00:02,417
将为您提供列信息(作为SQL Alchemy Base.classes.table1.__table__.columns
对象,它有一些方法)。
其中一种方法将产生一个列名列表,具体为:
ImmutableColumnCollection
...基本上我缺少的主要是“魔术”Base.classes.table1.__table__.columns.keys()
属性/对象。