sqlite - Qt中使用sqlalchemy的原因

标签 sqlite qt sqlalchemy pyside

这真是一个“请原谅我的无知”问题,如果不符合要求,请见谅。

我想开发一个相当简单的数据库应用程序。它将基于桌面且轻量级,所以我很高兴 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/

相关文章:

python - SqlAlchemy/mysql 可选Where子句

android - SQLite避免android中的重复条目

database - SQLite 如果列存在

c++ - 如何使用 Qt oauth 创建登录页面?

ios - 如何通过 qml 在移动设备中创建新窗口?

Python 和 PySide : Variable values reset when calling functions from another file

sqlite - 在 SQLite 上连接表时如何进行更新?

java - 具有 2 个Where 子句的查询

sql - 是否可以在 sqlalchemy 中回滚 create_all?

python - Flask-SQLAlchemy 一对多关系找不到名称