PyQt有一些不错的功能,如QSqlTableModel和QSqlRelationalTableModel,但是,它不包含ORM功能,我讨厌在我的程序中使用原始SQL语句。将SQL ORM库(如Sqlalchemy(集成到PyQt SQL设施的最佳方法是什么?目前我能想到的唯一解决方案是在 SqlAlchemy 中构建我的对象模型,并使用 QSqlDatabase 手动执行编译的 SQL 语句。有没有更好的方法可以做到这一点?有没有办法,比如说,为使用QSqlDatabase的SqlAlchemy构建一个自定义后端/适配器?其他ORM库,如Peewee也很好。
https://docs.sqlalchemy.org/en/13/core/engines.html?highlight=create_engine#sqlalchemy.create_engine
使用"模拟"策略创建一个假引擎,将所有编译的 sql 语句重定向到 QSqlDatabase 以执行。
似乎有一个问题:需要与真实数据库交互的功能将不起作用,例如在创建之前检查表是否存在。 此外,这似乎不适用于会话 API,任何对commit()
和flush()
的调用都会导致NotImplementedError
。