python - SQLAlchemy - 获取表列表

标签 python mysql sqlalchemy pyramid

我在文档中找不到任何相关信息,但是如何获取在 SQLAlchemy 中创建的表的列表?

我使用类方法来创建表格。

最佳答案

所有表都收集在 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,如果您有多个架构,则需要遍历引擎中的所有架构:

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)

关于python - SQLAlchemy - 获取表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473925/

相关文章:

python - 在数组中查找总和为 value 的第一对数字

python - Beautiful Soup For 循环给了我单独的列表,但是需要一个数据框

python - 如何使用 asyncio 并行计算?

MySQL 存储过程返回错误结果

php - 使用php在mysql中插入符号

python - SQLAlchemy 查询引发有关 sqlite 和 Decimal 的不必要警告,如何具体禁用?

python - 在程序的多个部分中捕获ValueError

php - 针对用户特定 Activity 提要的优化 MySQL 设计

python - sqlalchemy.exc.OperationalError : (sqlite3. OperationalError) 未知数据库 "mydb"

python - 在 pylint 和 mypy 中处理 Python 类重新定义警告