0

私は Django の初心者で、mysql をプライマリ DB として使用して 1 つのアプリを開発しましたが、次のプロジェクトではhttps://github.com/cqlengine/cqlengineを使用して Cassandra db を使用する必要がありますが、 https://githubは使用しません。 com/r4fek/django-cassandra-engine (これは cqlengine のラッパーですか?)。

手がかりがありません どうすれば始められますか? つまり、データベース接続を作成してから、models.py ファイルにモデルを作成する方法と場所を教えてください。

init .pyファイルで接続を作成する必要がありますか?views.pyで? 最も効率的な方法は何ですか?

誰かが簡単な構成とモデルを提供してくれれば、(将来の読者にとっても) 素晴らしいことです。

4

2 に答える 2

3

twissandraのデモは、Cassandra と Django を使用してアプリを作成する方法の良い例です。

この実装にはmodels.pyはなく、接続はファイルcass.pyで維持されます。

cass.py は、C* データベースからデータを返し、システムで使用されるオブジェクトを作成するために必要なすべての関数もホストしていることがわかります。ここで、API リクエストを CqlEngine コードと交換します。

これらのリソースが正しい方向に向けられることを願っています

于 2014-12-16T21:12:45.747 に答える
0

Rustyrazorbladeは、彼の CQLEngine チュートリアル ブランチHEREを介して、これを実現する簡単な方法を示しています。

your_app_project/models/connection.py で次のようにすることで、接続を簡単にセットアップできます。

from cqlengine import management
from cqlengine.connection import setup

def connect():
    setup(["127.0.0.1", "127.0.1.1", "127.0.1.2"], "tutorial", retry_connect=True)
    management.create_keyspace("tutorial", replication_factor=1, strategy_class="SimpleStrategy")

この例では、"tutorial" は使用しているキースペースstrategy_classは C* インスタンスが使用しているレプリケーション戦略、replication_factorはリング全体に保存されるレプリケーションの量、127.0.0.1は Cassandra クラスター ノードの IP アドレスです。 (これにはリストまたは文字列を渡すことができます) retry_connectは、接続に失敗した場合に再接続を試みるかどうかを指定します。

ここから、新しい C* ユーザーが混乱するのは非常に簡単です。これは、C* テーブルを同期する前、または C* クエリを使用する前に、いつでも呼び出すことができます。

したがって、次のようなことを行う必要があります。

from cqlengine.management import sync_table
from models.connection import connect
from models.somemodels import MyCassandraModel

# This will fire off our previously setup 'connect' method
connect()
# This will setup the Model as a table in your C* DB
sync_table(MyCassandraModel)

CQLEngine setup() が適切に実行されている限り、これを manage.py にドロップすることもできます。

于 2015-03-03T21:57:19.170 に答える