2012-01-26 3 views
27

PythonでSQLite用に使用できる軽量データベースラッパーはありますか?私はDjangoのORMのようなものが欲しいですが、私はデータベースファイルを指し示すだけで、私にとって必要なAPIを作成します(つまりすべてのCRUDを処理します)。SQLite用Python軽量データベースラッパー

答えて

39

うん、SQLAlchemyのは素晴らしいですが、他のオプションもあります。それらの1つはPeeweeです。 非常に軽量で、探しているものに完全に合うかもしれません。

https://github.com/coleifer/peewee

+2

ピューニーはうまくいけばそこにいるはずです。既にデータベースがある場合は、モデルコードも生成するスクリプト "pwiz"があります。http://charlesleifer.com/blog/model-code-generation-peewee/ – coleifer

+0

peeweeは簡単で使いやすいです。 –

+0

ピューニーは良いです。 –

11

あなたが探しているものが、SQLAlchemyかもしれません。

http://www.sqlalchemy.org/

+7

それほど恐ろしいほど複雑ではないものはありますか? – Puzzled79

+0

その最も古くて丈夫ですが、開発者にとって親しみやすく、最高のものではないようです。 Peeweeと比較して必要な難しいdeverlopmentスキルはまだありません。 –

3

間違いなくpeewee。私はsqlalchemyを試しましたが、それは混乱しており、魔法はありません。

他のORMは、SQLobject、Elixir(sqlalchemy上のレイヤ)、PonyORMのように、もはや開発されていないか、あまり良くありません。 Peeweeはこれまでパイソンコミュニティで見たことの中で最高のもので、ルビーやPHPのメインORMに近いです。

ピーウィーも、それ以外の場合は、それを作成し、それが存在する場合は自動的にDBから「フーバー」という名前の人を取る、この一握りのショートカット

Person.get_or_create(name='Foo', surname='Bar') 

のように、多くの宝石を持っています。

+0

正しい、シンプルでより良いフレームワーク –

+0

SQLAlchemyを使って1年間働いた後、私はそれが現時点で最も良く開発されたフレームワークだと言えるでしょう。SQLを使用しなければならないときは、他のフレームワークは考慮しません。 – Alessio

0

チェックアウトはRabaDBです。間違いなく最も単純なインターフェースの1つがそこにあります。

class Human(R.Raba) : 
     _raba_namespace = 'test_namespace' 

     #Everything that is not a raba object is primitive 
     name = rf.Primitive() 
     age = rf.Primitive() 
     city = rf.Primitive() 

     #Only Cars can fit into this relation 
     cars = rf.Relation('Car') 

     #best friend can only be a human 
     bestFriend = rf.RabaObject('Human') 

少しのメモリ消費量を有するように最適化され、それは、例によって継承をクエリをサポート、ツールをデバッグしているとも、必要な場合は、SQLにフォールバックすることができます。

+0

あまり詳しく書かれていないが、複雑さについてのデモも明確ではない。 –

+0

まあ私は同意しません。 githubのreadmeには、あなたが知っておく必要があるすべてのものが含まれています。デバッグ、トランザクション、さらには継承まで。複雑さとパフォーマンスに関心があるなら、SQLiteのバージョンに大きく依存しています。しかしここでは何も秘密にしていません。 conn.enableQueryPrint(True)(readme参照)でSQLクエリを簡単に印刷できます。スキーマを見たい場合は、.dbファイルを任意のSQLiteクライアントで開くことができます。また、SQLiteの説明を使用して、SQLiteのバージョンに応じてパフォーマンスをよりよく見ることができます。 – tariqdaouda

+0

あなたの少しの知識にあなたの意見が不一致で、文書をいかにうまく維持するかを見てください。 https://github.com/coleifer/peeweeとhttp://docs.peewee-orm.com/en/latest/を参照し、十分に文書化されているとは言えないサンプルをいくつか追加します。あなたはその文書をconisderかもしれませんが、完全な文書のわずか2%です。今日は誰もフォークや高評価のRabaDbライブラリを見ることはできません。しかしRabaDBはまだ利用率が低い。 –