【发布时间】:2016-12-17 10:03:33
【问题描述】:
我只是在现有数据库上进行一系列选择。
- 不想使用原始 SQL,因为我可能想在 MySQL 和 SQLite 之间跳转进行测试
- 想要坚持使用 SQLAlchemy 的 SQL 表达式语言。
我需要获取一个 Table 对象,所以我执行以下操作:
s = select([some_table_object])
我已经想出了如何显式反映单个表以获取表对象:
from sqlalchemy import *
conn = create_engine('mysql://....')
metadata = MetaData(conn)
mytable = Table('mytable', metadata, autoload=True)
s = select([mytable])
result = conn.execute(s)
# HAPPY!!!!
但是,这会变得乏味,因为您必须为每张桌子都这样做(我去了很多桌子)。我知道我可以以某种方式使用MetaData 类来反映我正在连接的现有数据库,但我不确定如何从元数据中获取实际对应的表。
from sqlalchemy import *
conn = create_engine('mysql://....')
metadata = MetaData(conn)
metadata.reflect()
# How would do I get a Table instance corresponding to the
# mytable table in the DB so I move on to HAPPY!!
mytable = metadata.no_clue_how_to_get_tables()
s = select([some_table_object])
result = conn.execute(s)
需要什么来替换mytable = metadata.no_clue_how_to_get_tables() 行以获得Table 实例?
【问题讨论】:
标签: python sqlalchemy