Django Cassandra Engine
Project description
Django Cassandra Engine - the Cassandra backend for Django
All tools you need to start your journey with Apache Cassandra and Django Framework!
Discord: https://discord.gg/pxunMGmDNc
Features
- integration with latest
python-driver
and optionallydse-driver
from DataStax - working
flush
,migrate
,sync_cassandra
,inspectdb
anddbshell
commands - support for creating/destroying test database
- accepts all
Cqlengine
andcassandra.cluster.Cluster
connection 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
Sponsors
Help support ongoing development and maintenance by sponsoring Django Cassandra Engine.
Our Sponsors:
Astra DB Use Django with DataStax Astra DB - built on Apache Cassandra. |
NoiSek |
Installation
Recommended installation:
pip install django-cassandra-engine
Basic Usage
-
Add
django_cassandra_engine
toINSTALLED_APPS
in yoursettings.py
file:INSTALLED_APPS = ('django_cassandra_engine',) + INSTALLED_APPS
-
Change
DATABASES
setting: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!
Connect to Cassandra with a Cloud Config bundle
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'
},
}
}
}
}
Documentation
The documentation can be found online here.
License
Copyright (c) 2014-2024, Rafał Furmański.
All rights reserved. Licensed under BSD 2-Clause License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django_cassandra_engine-1.9.0.tar.gz
.
File metadata
- Download URL: django_cassandra_engine-1.9.0.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0758a2384edc7769c58411c20034d9beeb0eaa016dbc3f06de6f952bd04a0ddf |
|
MD5 | 986e99d1ca7731571574c2a755dc024f |
|
BLAKE2b-256 | 2b0ed07ffcacd25141cfde2bab2ad080461dd60e2cca0d84c474f8e56be61b2e |