我正在为使用Peewee的程序编写一个基本的gui。在gui中,我想显示我的数据库中存在的所有表。我可以以某种方式查询peewee/postgres中的所有现有表吗?
是否有任何方法可以获取所有现有表的名称,可以在列表中说出来?
我正在为使用Peewee的程序编写一个基本的gui。在gui中,我想显示我的数据库中存在的所有表。我可以以某种方式查询peewee/postgres中的所有现有表吗?
是否有任何方法可以获取所有现有表的名称,可以在列表中说出来?
Peewee具有内省的Postgres,MySQL和SQLite的以下类型的模式信息的能力:
可以使用在Database
类以下方法得到这个元数据:
因此,而不是使用游标并编写一些SQL自己,只是做:
db = PostgresqlDatabase('my_db')
tables = db.get_tables()
对于更加疯狂,检查出reflection模块,这实际上可以从现有的数据库模式产生Peewee模型类。
要获取表的列表模式中的,请确保你已经建立的连接和光标和尝试以下操作:
cursor.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='public'")
myables = cursor.fetchall()
mytables = [x[0] for x in mytables]
我希望这有助于。
如果您已经建立了连接,请运行'SELECT table_name FROM information_schema.tables WHERE table_schema ='public''来获取模式中的表名。这应该返回一个元素元组的列表。 – Abdou