Simple Django blogging app for testing my new module post
- Basic User authorisation and registration.
- Basic User, Group permissions: admin, editor, normal.
- Editors: is a Group. User of this group can add posts, update/delete the existing posts for which they have permissions/ownership.
- admin: is superuser as usual.
- normal user can add comments and like posts
- Facebook comments.
- Tags.
- Post History.
- Search, year/month archives.
- Sort by post author, category, tags.
- Basic REST API provided by Django REST framework (available at
/api
). - Contact us page (configurable).
Blog pages
google analytics
SEO compliant
Dynamic Menu.
Social Login.
python
3.5, 3.6, 3.7Django
2.2.13PostreSQL
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/agiledesign2/django-blog-post.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/dev.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.dev
The setup is complete. Run a local server with
python3 manage.py runserver --settings=website.settings.dev
The blog should be available at localhost:8000
.
At this point you can create a superuser account, the Editors group, add a user to this group and create a normal user to this group.
You can do all this with python3 manage.py makesuper
.
- This command create
- A admin user with user name: admin with password: admin.
- A normal user name: editor with password: editor and added it to the Editor group.
- A normal user name: normal with password normal.