0

我是 Django 初学者,已经开发了 1 个使用 mysql 作为主数据库的应用程序,但在我的下一个项目中,我必须使用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* 数据库返回数据和生成系统使用的对象所需的所有函数。在这里,您可以使用 CqlEngine 代码交换 api 请求。

我希望这些资源能让你指出正确的方向

于 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 回答