Django is a Python web server while Cassandra is a high availability database. This article will be a complete guide for installation and use of Django with Cassandra.
Cassandra is safe to download for both PC and MAC. Can I Use Cassandra for My Logo? You can use the Cassandra for your logo as well as all other graphic designs projects. Is There Any Font Similar to Cassandra in Google Fonts? The Closest Similar Alternative in Google Fonts to Cassandra Is Dancing Script and Pacifico. How do I stop cassandra server running on a single node in my mac os x? Cassandra script doesn't have -stop option. Only way other than restart the mac os x, was to do a 'ps' and find the java pro.
Django Installation
Installing Python
Since Django is a Python web server, you’ll need Python. You can check if you have Python already.
However, if you’re using a Mac, I have had a lot of problems with the default system Python with the combination of Cassandra and Django. I would recommend reinstalling a new version of Python.
If you don’t have the Python version that you want, downloads are available at:
Various versions of Django are only compatible with different versions of Python. Currently, Django version 1.8 is the stable version release.
After you have obtained Python, you will need
pip
(which is a Python package installer).To get
pip
, you will need to download the following file:After download the
get-pip.py
file, you can install pip
by changing directory to the download location.After you have pip, you can install Django and the django cassandra driver.
Installing Cassandra
Now that you have Django and the Django’s Cassandra library, you have to install Cassandra of course. I’ve written another blog post about installing and setting up Cassandra.
Setting up a new Django project
We will create a Django project in the folder that we are at.
A new folder called
mysite/
will be created with the Django files.2 4 6 | manage.py __init__.py urls.py |
We will edit the
mysite/settings.py
file to integrate the Cassandra database. We must change the line at INSTALLED_APPS
to:INSTALLED_APPS=('django_cassandra_engine',)+INSTALLED_APPS |
This app should be
the first app
on INSTALLED_APPS
list.Also, you need to change another group of lines.
2 4 6 8 10 12 14 | 'default':{ 'NAME':'db', 'HOST':'db1.example.com,db2.example.com', 'replication':{ 'replication_factor':1 } } |
HOST
should be the IP address or domain name. You can also change the names of NAME
and TEST_NAME
.After we have configured the settings, we can create an application where our website will render. The application is another folder with Python files that will render our Django website.
Cassandra Version
The following directory structure is created inside the top level
mysite/
folder:2 4 6 8 | import uuid from cassandra.cqlengine.modelsimport Model classExampleModel(Model): read_repair_chance=0.05# optional - defaults to 0.1 example_id=columns.UUID(primary_key=True,default=uuid.uuid4) |
Download Cassandra Mac
Since we already installed Cassandra, in another terminal, we will need to start the service.
Back inside the Django project, change directory to the top level
mysite/
where manage.py
is.![Mac Mac](/uploads/1/2/6/3/126360098/222899011.png)
With Cassandra running in the other terminal, we will now sync the model for Cassandra.
With Cassandra running, after syncing with the Cassandra database, we should be able to access the Cassandra shell.
With this command, we can access the Cassandra shell inside the db database we create inside the
mysite/settings.py
. Nothing is inside the db at the moment though. Let’s exit our of the shell and come back to it later.We will allow the root index
/
to work at http://localhost:8080. Inside example/urls.py
, we will need to adjust the url settings.2 4 | from.import views urlpatterns=[url(r'^$',views.index,name='index'),] |
What this snippet does is that it allows a function named index inside
example/views.py
to render the page at http://localhost:8080.Inside
example/views.py
, we can write:2 4 | returnHttpResponse('Hello world') |
Cassandra Download Mac App
After saving that file, if you change directory to the top level
mysite/
, you can run the following command to boot your Django server up.If you visit http://localhost:8080, you should see the
'Hello world'
in plain text.Inside the
example/views.py
, we can start connecting to the Cassandra database with Python. Add the following imports for Cassandra and to the model to be able to establish Python connection with Cassandra.2 4 6 8 10 12 14 | from cassandra.cqlengine.managementimport sync_table from models import ExampleModel cluster=Cluster(['127.0.0.1']) session.set_keyspace('db') insert=ExampleModel(description='Hello world description') cluster.shutdown() |
Make sure that
cassandra -f
is running! Visit http://localhost:8080, and the page should render 'Hello world'
like before, but this time, it will also insert a row for 'Hello world description'
in Cassandra.In another terminal, you go to the top level
mysite/
directory, and run the following command with cassandra -f
running in another terminal:2 4 | example_id|description |'Hello world description' |
You have done your first insert with Django and Cassandra and checked the contents from the Cassandra shell!