Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r4fek/django-cassandra-engine
Django Cassandra Engine - the Cassandra backend for Django
https://github.com/r4fek/django-cassandra-engine
cassandra django django-cassandra-engine python scylladb
Last synced: about 12 hours ago
JSON representation
Django Cassandra Engine - the Cassandra backend for Django
- Host: GitHub
- URL: https://github.com/r4fek/django-cassandra-engine
- Owner: r4fek
- License: bsd-2-clause
- Created: 2014-07-18T12:34:40.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-08-13T12:46:07.000Z (5 months ago)
- Last Synced: 2024-12-19T20:03:55.429Z (8 days ago)
- Topics: cassandra, django, django-cassandra-engine, python, scylladb
- Language: Python
- Homepage:
- Size: 3.12 MB
- Stars: 368
- Watchers: 26
- Forks: 84
- Open Issues: 44
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# Django Cassandra Engine - the Cassandra backend for Django #
All tools you need to start your journey with Apache Cassandra and Django Framework!
[![Latest version](https://img.shields.io/pypi/v/django-cassandra-engine.svg "Latest version")](https://pypi.python.org/pypi/django-cassandra-engine/)
![workflow](https://github.com/r4fek/django-cassandra-engine/actions/workflows/tox.yml/badge.svg)Discord: https://discord.gg/pxunMGmDNc
## Features ##* integration with latest `python-driver` and optionally `dse-driver` from DataStax
* working `flush`, `migrate`, `sync_cassandra`, `inspectdb` and
`dbshell` commands
* support for creating/destroying test database
* accepts all `Cqlengine` and `cassandra.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](https://github.com/sponsors/r4fek).### 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 ##
1. Add `django_cassandra_engine` to `INSTALLED_APPS` in your `settings.py` file:
INSTALLED_APPS = ('django_cassandra_engine',) + INSTALLED_APPS
2. 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
}
}
}
}3. Define some model:
# myapp/models.py
import uuid
from cassandra.cqlengine import columns
from django_cassandra_engine.models import DjangoCassandraModelclass 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)4. Run `./manage.py sync_cassandra`
5. 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](http://r4fek.github.io/django-cassandra-engine/).
## License ##
Copyright (c) 2014-2024, [Rafał Furmański](https://linkedin.com/in/furmanski).All rights reserved. Licensed under BSD 2-Clause License.