是否可以使用 SQLAlchemy 或任何其他 python 库在运行时务实地确定表(MySQL DB)中可用的字段?对此的任何帮助都会很棒。
谢谢。
反射可以做到这一点。
使用 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查看更多信息
这是 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
您可以运行SHOW TABLE TABLENAME
并获取表的列。