我有一个项目,我必须使用Django
数据库Cassandra
进行开发。我在那里查看了文档,但只有mysql
,sklite
和postgre
数据库的信息,而不是Cassandra
。我正在寻找一种将Django
连接到Cassandra
的示例方式:
我知道我必须在文件setting.py
中设置数据库配置:
# Add "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
"ENGINE": "django.db.backends.cassandra",
# DB name or path to database file if using sqlite3.
"NAME": "test",
# Not used with sqlite3.
"USER": "",
enter code here# Not used with sqlite3.
"PASSWORD": "",
# Set to empty string for localhost. Not used with sqlite3.
"HOST": "127.0.0.1",
但它会引发错误:
Error was: No module named django_cassandra.base
任何人都可以帮助我吗?
答案 0 :(得分:2)
您可以在 Django Project文件夹中为 settings.py 使用此模式:
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine', # Install this engine from https://pypi.org/project/django-cassandra-engine/
'NAME': 'yourkeyspace', # the keyspace was created at cassandra
'USER': 'user',
'PASSWORD': 'password',
'HOST': '127.0.0.1', # You can add your hosts here (use ,)
'OPTIONS': {
'replication': {
'strategy_class': 'SimpleStrategy', # or any strategy you need
'replication_factor': 1 # Depend on your decision
},
'connection': {
'consistency': ConsistencyLevel.ONE,
'lazy_connect': True,
'retry_connect': True,
'port': 9042, # default port
# You can add any connection options for cassandra.Cluster() here!
}
}
}
}
答案 1 :(得分:1)
Django目前不支持nosql作为后端。有一个很好的类似django的ORM叫做cqlengine https://github.com/cqlengine/cqlengine,它正在积极开发中,而数据集团团队表示他们正在与cqlengine人合作。虽然您无法在settings.py中使用数据库defs,但您可以使用类似django的命令,例如,thingy.objects.all()来访问您的cassandra。
在datastax站点上找到的本机datastax python驱动程序,更面向cqlsh,可能会提醒您oracle连接器,但速度要快一些。
链接中建议的答案非常陈旧。
希望这有帮助。