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-2022, 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
Built Distribution
Hashes for django-cassandra-engine-1.7.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f18040dff958b20615bf802272d1a6a59ae2ad89d599f2f7b2a5802ee0f57a6e |
|
MD5 | 22a7761c594486cec888b6072c0f81d0 |
|
BLAKE2b-256 | c81ab9f799d5f2cd19386439a2e3e898459401215efb2bdec4e0db7878abe2a2 |
Hashes for django_cassandra_engine-1.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 911a0ec1ef500437c1579b3d9218d9748d12f7a44d09b4e3e9e3981f614ca819 |
|
MD5 | e0e59f766450b619a1598ab2626b7219 |
|
BLAKE2b-256 | 2143a910c8519935a7f3d759a12aa9cb6374fcad379f9f0eb1109e459c8bda39 |