这真是一个“请原谅我的无知”问题,如果不符合要求,请见谅。
我想开发一个相当简单的数据库应用程序。它将基于桌面且轻量级,所以我很高兴 SQLite 就足够了。我还决定使用 Qt 和 pyside。
浏览那里的大量教程,我不断遇到 sqlalchemy 和 exlixir(和 Camelot)。我基本上只是想知道在 Qt 中使用 sqlalchemy(和 elixir)相对于基本 QSql 有什么优势?如果我不使用这样的东西,我会错过什么。
我知道这是基本的,但在我继续自学过程之前,我只想在脑海中弄清楚这一点。
最佳答案
基本上,您在这里有 3 个选项。
QtSql
QtSql 是 Qt 中用于处理 SQL 数据库的独立模块。
优点:
- 与 Qt 的集成可能更容易
缺点:
- 很难学
- 为 C++ 编写,需要一些冗余代码
- 需要在您的项目中再添加一个 Qt 模块
- 文档看起来很糟糕
sqlite3模块
这是 Python 标准库中的一个模块,用于处理 SQLite 数据库。
优点:
- 非常容易使用
- 代码相当简洁
- 无外部依赖
缺点:
- 您必须编写 SQL 查询
SQLAlchemy对象关系管理
SQLAlchemy 使用数据库类似于使用普通类。
优点:
- 对象关系映射器:公开面向对象的接口(interface)并为您进行 SQL 查询
- 一旦设置了表信息,使用数据库就是一种纯粹的乐趣
缺点:
- 陡峭的学习曲线
这是我的结论:
如果您习惯于编写 SQL 查询并且不必对数据库进行大量操作,请使用 sqlite3。如果您不介意花一些时间学习一些很棒的东西,请选择 SQLAlchemy。
关于您提到的其他项目:
Elixir 似乎已经死了,SQLAlchemy 现在内置了它的功能,可能更好。
Camelot 很奇怪……我不会用它。
关于sqlite - Qt中使用sqlalchemy的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677141/