我想实现一个函数,该函数提供有关数据库中存在的所有表(及其列名)的信息(不仅包括使用SQLAlchemy创建的那些表)。在阅读文档时,在我看来,这是通过反射完成的,但我没有设法找到一些工作。有关如何做到这一点的任何建议或例子?使用SQLAlchemy列出数据库表
27
A
回答
55
开始与发动机:
from sqlalchemy import create_engine
engine = create_engine("postgresql://u:[email protected]/database")
所有表格/列名称的快速路径,请使用检查员:
from sqlalchemy import inspect
inspector = inspect(engine)
for table_name in inspector.get_table_names():
for column in inspector.get_columns(table_name):
print("Column: %s" % column['name'])
可替代地,使用元数据/桌子:
from sqlalchemy import MetaData
m = MetaData()
m.reflect(engine)
for table in m.tables.values():
print(table.name)
for column in table.c:
print(column.name)
文档:http://docs.sqlalchemy.org/en/rel_0_9/core/reflection.html#reflecting-all-tables-at-once
2
嘿,我创建了一个小模块,可以帮助轻松地反映在您连接到与SQLAlchemy的数据库中所有表,给它一看:EZAlchemy
from EZAlchemy.ezalchemy import EZAlchemy
DB = EZAlchemy(
db_user='username',
db_password='pezzword',
db_hostname='127.0.0.1',
db_database='mydatabase',
d_n_d='mysql' # stands for dialect+driver
)
# this function loads all tables in the database to the class instance DB
DB.connect()
# List all associations to DB, you will see all the tables in that database
dir(DB)
相关问题
- 1. 使用sqlalchemy生成数据库表
- 2. 使用SQLAlchemy,确定哪些列表值不在数据库列
- 3. SqlAlchemy:将表导出到新数据库
- 4. SQLAlchemy中的数据库列表
- 5. 添加新列到数据库表中使用的SQLAlchemy,pyodbc
- 6. 使用Python的SQLAlchemy商店列表到SQL数据库
- 7. 使用flask-sqlalchemy将字典保存到数据库列表
- 8. 如何使用sqlalchemy从pandas数据集更新数据库表
- 9. 使用SQLAlchemy写入MySQL数据库,使用SQLAlchemy,to_sql
- 10. 使用sqlalchemy列出索引
- 11. 使用SQLAlchemy的Oracle数据库模式
- 12. 使用SQLALCHEMY连接到Oracle数据库
- 13. 在列中使用列表作为数据类型(SQLAlchemy)
- 14. 使用wtforms和sqlalchemy生成数据库中的用户下拉列表
- 15. sqlalchemy数据库表被锁定
- 16. Sqlalchemy手动创建数据库表
- 17. Python:如何使用SQLAlchemy访问MySQL数据库表
- 18. 使用SQLAlchemy在两个数据库中加入表格
- 19. 在sqlalchemy中使用数据库名称限定表名
- 20. SQLAlchemy的正则表达式与MySQL数据库使用\ b
- 21. 使用SQLAlchemy枚举数据库中的查找表?
- 22. SQLAlchemy表未在数据库中反映出来
- 23. 使用Zend Framework列出数据库
- 24. 使用Flask,Flask-sqlalchemy和jQuery从数据库返回数据
- 25. Python SQLAlchemy数据库迁移
- 26. SQLAlchemy和多个数据库
- 27. 如何使用sqlalchemy将数据加载到现有数据库表中?
- 28. 从列表中为sqlalchemy的数据库实体分配列表元素
- 29. 使用列表框更新数据库
- 30. 列表使用Python和数据库
是否有任何好处(或下侧),以使用'inspect' VS'reflect'? – dthor