Simple Django blogging app
For more pictures, see pics
directory. See also https://django-blog-1k4z.herokuapp.com/
for the deployed version. With sample content. For testing purposes several accounts are created. Credentials: (X, Xpassword)
, where X=anna, bob, chris
.
- User authorisation and registration
- Basic user permissions: admin, editor, normal.
- Editors can add posts, update/delete the existing ones for which they have suitable permissions/ownership.
- admin is superuser as usual.
- Facebook comments
- Tags
- Search, year/month archives, sort by post author, category, tags.
- Basic REST API provided by Django REST framework (available at
/api
)
python
3.5, 3.6, 3.7Django
2.1.8PostreSQL
11.1
This project also uses a few external packages (see requirements.txt
file for details).
For instance, tags support is provided by django-taggit.
The easiest way to get this project up and running is via Docker. See docs to get started. Once set up run the following command:
docker-compose up
It may take a while for the process to complete, as Docker needs to pull required dependencies. Once it is done, the application should be accessible at 0.0.0.0:8000
.
Firstly, create a new directory and change to it:
mkdir blog-django && cd blog-django
Then, clone this repository to the current directory:
git clone https://github.com/kkosiba/blog-django.git .
Next, one needs to setup database like SQLite or PostgreSQL on a local machine. This project uses PostgreSQL by default (see Django documentation for different setup). This process may vary from one OS to another, eg. on Arch Linux one can follow a straightforward guide here.
The database settings are specified in website/settings/local.py
. In particular the default database name is BlogDjango
, which can be created from the PostgreSQL shell by running createdb BlogDjango
.
Next, set up a virtual environment and activate it:
python3 -m venv env && source env/bin/activate
Install required packages:
pip3 install -r requirements.txt
Next, perform migration:
python3 manage.py migrate --settings=website.settings.local
The setup is complete. Run a local server with
python3 manage.py runserver --settings=website.settings.local
The blog should be available at localhost:8000
.
At this point, one may want to create a superuser account, create the Editors group and add a few users to this group.