SQLAlchemy - 获取表的列表
我在文档里找不到相关的信息,但我想知道怎么才能获取在SQLAlchemy中创建的表的列表。
我是通过类的方法来创建这些表的。
17 个回答
67
from sqlalchemy import create_engine
engine = create_engine('postgresql://use:pass@localhost/DBname')
print (engine.table_names())
这是一个代码块,里面可能包含一些编程相关的内容或者示例代码。具体的内容需要根据上下文来理解。
如果你有任何具体的代码或者问题,可以把它们放在这里,我会帮助你理解。
105
在engine
这个对象里,有一个方法可以用来获取表的名称列表。这个方法叫做engine.table_names()
。
160
所有的表格都保存在 SQLAlchemy 的 MetaData 对象的 tables
属性里。如果你想获取这些表格的名字列表,可以这样做:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
如果你在使用声明式扩展,那么你可能并不需要自己管理元数据。幸运的是,元数据仍然存在于基类上,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
如果你想知道你的数据库里有哪些表格,即使是那些你还没有告诉 SQLAlchemy 的表格,你可以使用表反射。这样,SQLAlchemy 会检查数据库,并把所有缺失的表格更新到元数据里。
>>> metadata.reflect(engine)
对于 Postgres 数据库,如果你有多个模式(schemas),你需要遍历引擎中的所有模式:
from sqlalchemy import inspect
inspector = inspect(engine)
schemas = inspector.get_schema_names()
for schema in schemas:
print("schema: %s" % schema)
for table_name in inspector.get_table_names(schema=schema):
for column in inspector.get_columns(table_name, schema=schema):
print("Column: %s" % column)