我可以以某种方式查询peewee/postgres中的所有现有表吗?

han*_*ris 2 python peewee

我正在为一个使用Peewee的程序写一个基本的gui.在gui中,我想显示我数据库中存在的所有表.

有没有办法获取所有现有表的名称,让我们在列表中说?

col*_*fer 9

Peewee能够针对以下类型的架构信息反省Postgres,MySQL和SQLite:

  • 表名
  • 列(名称,数据类型,null?,主键?,表)
  • 主键(列)
  • 外键(列,dest表,dest列,表)
  • 索引(名称,sql*,列,唯一?,表)

您可以在Database类上使用以下方法获取此元数据:

因此,不要使用游标并自己编写一些SQL,而是:

db = PostgresqlDatabase('my_db')
tables = db.get_tables()
Run Code Online (Sandbox Code Playgroud)

为了更加疯狂,请查看反射模块,该模块实际上可以从现有数据库模式生成Peewee模型类.