Pyrant + PyModels-Django ORMの最も簡単な代替品*

Pyrantライブラリのゼロファーストバージョンが静かに、そしていつの間にかリリースされました 。 Pythonic Tyrant。



Pyrantは、Tokyo CabinetのネットワークインターフェイスであるTokyo Tyrantの完全なPythonハーネスです。



Tokyo Cabinetは、最新の軽量で柔軟性のある超二重データウェアハウス( DBM )です。 最も単純なキー/値と「テーブル」、またはむしろドキュメント指向の両方を含む、いくつかのタイプのデータベースをサポートします。 後者は、東京をCouchDB、MongoDBなどの素晴らしい製品と同等のものにしますが、TC / TTははるかに単純で簡単で、したがって高速です。 さらに、文字列と数値を区別して、非常に複雑なデータクエリ( 演算子リストを参照)をサポートします。 また、東京キャビネットでは、Luaで拡張機能を作成できます。

また、 PyModels ! はい、Pyrant + PyModelsはDjango ORMと非常によく似ています。 数百回だけ簡単に:)



Pyrantの使用例:



 $ ttserver test.tct&
 $ python
 >>>ピラントをインポート
 >>> t = pyrant.Tyrant()
 >>> t.query
 []
 >>> t ['guido'] = {'name': 'Guido'、 'age':53}
 >>> t ['larry'] = {'name': 'Larry'、 'age':55}
 >>> t.query.filter(age__gt = 53)
 [(u'guido '、{u'name':u'Guido '、u'age':u'53 '})]
 >>> t.query.filter(name__matches = '^。+ ry $')
 [(u'larry '、{u'name':u'Larry '、u'age':u'55 '})]
 >>> guys = t.query.filter(name = 'Guido')|  t.query.filter(name = 'Larry')
 >>> guys.columns( 'age')
 [{u'age ':u'53'}、{u'age ':u'55'}]


ここでは、数字が文字列として格納されていることがわかります(ただし、数字で選択して並べ替えることができます)。 前述のPyModelsライブラリを使用すると、必要に応じて着信値と発信値を自動的に処理できます。また、選択結果をモデルインスタンスでラップするため、最終的にすべてが可能な限り便利になります。



 >>> storage = Storage()#Pyrantを使用
 >>>クラスPerson(モデル):
 ... name =プロパティ()
 ...年齢=数()
 ... def __unicode __(自己):
 ... self.nameを返します
 >>> q = Person.query(ストレージ).filter(name__contains = 'G')
 >>> guido = q [0]
 >>> guido
 <パーソン・グイド>
 >>> guido.age
 53


_________

注:

* Pyrant + PyModelsは確かにDjango ORMの代替品ですが、特効薬はありません。 一緒に暮らしましょう。 すべてのタイプのデータベース、団結。 =)



UPD:モデルの名前がPyModelsに変更され、トピックが調整されました。



All Articles