4

これは本当に「私の無知を許してください」という質問なので、要件を満たしていない場合は申し訳ありません.

かなり単純なデータベース アプリケーションを開発したいと考えています。デスクトップベースで軽量なので、SQLite で十分です。Qt と pyside も決定しました。

そこにある大量のチュートリアルに目を通すと、sqlalchemy と exlixir (および Camelot) に出くわします。私は基本的に、Qtで基本的なQSqlよりもsqlalchemy(およびエリクサー)を使用することにどのような利点があるのか​​ 疑問に思っていますか? そのようなものを使わなかったら、何が欠けているでしょうか。

これは基本的なことだとわかっていますが、独学のプロセスを進める前に、頭の中ではっきりさせておきたいと思います。

4

2 に答える 2

7

基本的に、ここには 3 つのオプションがあります。

QtSql

QtSql は、SQL データベースを操作するための Qt の個別のモジュールです。

長所:

  • Qtとの統合はより簡単かもしれません

短所:

  • 学ぶのが難しい
  • C++ 用に作成されたもので、冗長なコードが必要です
  • プロジェクトに Qt モジュールをもう 1 つ追加する必要があります
  • ドキュメンテーションは見栄えが悪い

sqlite3モジュール

これは、SQLite データベースを操作するための Python 標準ライブラリのモジュールです。

長所:

  • とても使いやすい
  • コードはかなり簡潔です
  • 外部依存なし

短所:

  • SQLクエリを書く必要があります

SQLAlchemy ORM

SQLAlchemy は、通常のクラスと同様にデータベースを操作します。

長所:

  • オブジェクト リレーショナル マッパー: オブジェクト指向のインターフェイスを公開し、SQL クエリを作成します。
  • テーブル情報を設定したら、データベースを操作するのは純粋な喜びです

短所:

  • 急な学習曲線

私の結論は次のとおり
です。SQL クエリの作成に慣れていて、データベースで多くの作業を行う必要がない場合は、sqlite3 を使用してください。そして、素晴らしいことを学ぶために時間を費やすことを厭わないのであれば、SQLAlchemy に行ってください。

あなたが言及した他のプロジェクトについて:
Elixir は死んでいるようで、SQLAlchemy にはその機能が組み込まれています。
キャメロットは奇妙です... 私は使いません。

于 2012-05-21T07:45:59.090 に答える
1

私も同様の状況にいます... PyQt の学習曲線のかなり早い段階で、いくつかのデータベース関連のプロジェクトに取り組みたいと考えています。私はあなたが持っているのと同じスレッドのように聞こえるもののいくつかに出くわしました...それらは PyQt4 と組み合わせて sqlalchemy、elixir、または Project Camelot について話します。ただし、明確な利点に関する限り、それらのどれも実際にはあまり詳しく説明していないようです. どうやら、その利点は読者にとって本質的に明白であると想定されているようです;) ほとんどの場合...私が収集したことは、プロジェクトに関してある程度の複雑さのレベルに達すると、多かれ少なかれある可能性が高いということですとにかく、適用可能なQt4オブジェクトを使用してデータベース処理の基本的な抽象化のいくつかを作成し、「自分でロールする」のではなく、sqlalchemy/elixirを使用するだけでお金/時間をかけることができる.

近い将来、私が決めたことは次のとおりです。PyQt が提供する DB を使用して、最初のいくつかの基本的なプロジェクトに取り組む予定です。それに慣れたら、戻って sqlalchemy や elixir などを使ってやり直すかもしれません。

于 2012-05-21T04:00:01.187 に答える