我正在为一个使用Peewee的程序写一个基本的gui。在gui中,我想显示我数据库中存在的所有表。
有没有办法获取所有现有表的名称,比如说在列表中?
答案 0 :(得分:8)
Peewee能够针对以下类型的架构信息反省Postgres,MySQL和SQLite:
您可以使用Database
类上的以下方法获取此元数据:
因此,不要使用游标并自己编写一些SQL,而是执行:
db = PostgresqlDatabase('my_db')
tables = db.get_tables()
要想更加疯狂,请查看reflection模块,该模块实际上可以从现有数据库模式生成Peewee模型类。
答案 1 :(得分:0)
要获取架构中的表列表,请确保已建立连接和游标并尝试以下操作:
cursor.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='public'")
myables = cursor.fetchall()
mytables = [x[0] for x in mytables]
我希望这会有所帮助。