4

是否可以使用 SQLAlchemy 或任何其他 python 库在运行时务实地确定表(MySQL DB)中可用的字段?对此的任何帮助都会很棒。

谢谢。

4

3 回答 3

3

反射可以做到这一点。

使用 sqlalchemy 一次反映数据库

meta = MetaData()
meta.reflect(bind=someengine)
users_table = meta.tables['users']
addresses_table = meta.tables['addresses']
# fields of address_table
fields = addresses_table.columns.keys()

在http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#reflecting-database-objects查看更多信息

于 2012-07-16T08:50:56.150 回答
0

这是 python ( pep 249 ) 的 std DB api 规范的一部分,即游标上的描述成员,因此您不需要 SQLAlchemy。

例如使用http://www.pymysql.org/用户是你的表

import pymysql

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mysql')
cur = conn.cursor()
cur.execute("SELECT * FROM user")
print cur.description
于 2012-07-16T09:18:07.277 回答
0

您可以运行SHOW TABLE TABLENAME并获取表的列。

于 2012-07-16T08:12:54.050 回答