All tools you need to start your journey with Apache Cassandra and Django Framework!
Discord: https://discord.gg/pxunMGmDNc
- integration with latest
python-driverand optionallydse-driverfrom DataStax - full compatibility with ScyllaDB using
scylla-driver - working
flush,migrate,sync_cassandra,inspectdbanddbshellcommands - support for creating/destroying test database
- accepts all
Cqlengineandcassandra.cluster.Clusterconnection options - automatic connection/disconnection handling
- works well along with relational databases (as secondary DB)
- storing sessions in Cassandra
- working django forms
- usable admin panel with Cassandra models
- support DataStax Astra cloud hosted Cassandra
Help support ongoing development and maintenance by sponsoring Django Cassandra Engine.
![]() Astra DB Use Django with DataStax Astra DB - built on Apache Cassandra. |
NoiSek |
Recommended installation:
pip install django-cassandra-engine
-
Add
django_cassandra_enginetoINSTALLED_APPSin yoursettings.pyfile:INSTALLED_APPS = ('django_cassandra_engine',) + INSTALLED_APPS -
Change
DATABASESsetting:DATABASES = { 'default': { 'ENGINE': 'django_cassandra_engine', 'NAME': 'db', 'TEST_NAME': 'test_db', 'HOST': 'db1.example.com,db2.example.com', 'OPTIONS': { 'replication': { 'strategy_class': 'SimpleStrategy', 'replication_factor': 1 } } } } -
Define some model:
# myapp/models.py import uuid from cassandra.cqlengine import columns from django_cassandra_engine.models import DjangoCassandraModel class ExampleModel(DjangoCassandraModel): example_id = columns.UUID(primary_key=True, default=uuid.uuid4) example_type = columns.Integer(index=True) created_at = columns.DateTime() description = columns.Text(required=False) -
Run
./manage.py sync_cassandra -
Done!
Django Cassandra Engine has full support for ScyllaDB. The package uses scylla-driver, which is ScyllaDB's optimized fork of the DataStax Python driver.
ScyllaDB is a high-performance NoSQL database that is API-compatible with Apache Cassandra. To use Django Cassandra Engine with ScyllaDB, simply configure your database settings to point to your ScyllaDB instance:
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'db',
'TEST_NAME': 'test_db',
'HOST': 'scylla-host.example.com',
'OPTIONS': {
'replication': {
'strategy_class': 'SimpleStrategy',
'replication_factor': 1
}
}
}
}
All features of Django Cassandra Engine work seamlessly with ScyllaDB, including migrations, model operations, and test database management.
To connect to a hosted Cassandra cluster that provides a secure connection bundle (ex. DataStax Astra) change the DATABASES setting of your settings.py:
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'keyspace_name',
'TEST_NAME': 'table_name',
'USER': 'token',
'PASSWORD': token_value,
'OPTIONS': {
'connection': {
'cloud': {
'secure_connect_bundle': '/path/to/secure/bundle.zip'
},
}
}
}
}
The documentation can be found online here.
Copyright (c) 2014-2024, Rafał Furmański.
All rights reserved. Licensed under BSD 2-Clause License.
