Django Cookie-Cutter - Simple Theme-able Generator

This article presets Django Cookie-Cutter as a simple way to build a Django project with less manual coding and the possibility to customize a few things like UI design and database type (SQLite, MySql, or PostgreSQL). For newcomers, Cookiecutter is a command-line utility that creates projects from project templates and Django is a leading web framework built by experts using a batteries-included concept.  

What's in the box

Using the Django Cookie-Cutter tool any developer can generate simple Django projects like the ones listed below with customized design and database backends plus minor things like project name and README instructions.

Django Cookie-Cutter - Sample Projects.

✨ How to use it

To use this simple generator a minimal programming kit should be installed in the workstation starting with Python3 and GIT:

  • Python - a modern script language used for many types of projects
  • GIT - a command-line tool used to download sources from Github
  • A modern editor like VSCode, Atom, or even Notepad++

Once we have all the tools properly installed, we can move on and build a Django project.

👉 Step #1 - Install dependencies (cookie-cutter and GitPython)

$ pip install cookiecutter
$ pip install GitPython
Django Cookie-Cutter - Install Modules

The above command uses PIP, the official package manager for Python, to install required modules globally in the system. The recommended way to install packages is to use a virtual environment that isolates the installation as shown below:

$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Install modules
$ pip install cookiecutter
$ pip install GitPython
Django Cookie-Cutter - Install via VENV

CookieCutter is the Python library that makes all the work for us and GitPython is a nice and useful Python wrapper around Git used to pull the UI themes from Git.

👉 Step #2 - Generate the project

$ cookiecutter https://github.com/app-generator/cookiecutter-django.git
Django Cookie-Cutter - Generate Project

👉 Step #3 - Customize the future project

Most of the commands provide a default value selectable by an ENTER.

>>> # Project Name Option 
>>> project_name [Django Seed project]: django_volt

>>> # Project Slug is the directory name
>>> project_slug [django_volt]:

>>> # Project Description: saved in the README file 
>>> description [A simple Django project]: My Simple Django Project

>>> # Project Author: saved in the README file   
>>> author_name []: Sm0ke

>>> # Author Email: saved in the README file   
>>> email [bill@microsoft.com]:

>>> Project Version: saved in the README file
>>> version [0.0.1]:

>>> UI Kit: (Volt default option)
>>> Select theme:
1 - volt
2 - soft-ui
3 - datta-able

>>> Database: (SQLite default option) 
Select database:
1 - sqlite3
2 - mysql
3 - postgresql

>>> Database Credentials: Used to configure the connection
>>> database_name [appseed_django]: db_name
>>> database_user [appseed_user]: db_user
>>> database_pass [Pass1234]: SuperS3cret_Hgdv
Django Cookie-Cutter - Set Up

In the end, the UI is downloaded from a public repository and injected into the codebase.  Let's open the generated directory django_volt and visualize the codebase.

Django Cookie-Cutter - Generated Codebase

Item #1 is the project README customized to explain how to build the project according to the selected options (database, project name...).

Item #2 - applications that provide basic features like authentication, forms validation, and UI Theme integration.


The next logical step is to follow the build instructions presented in the README file and start the generated project:

👉 Step #1 - Create a virtual environment

$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
Django Cookie-Cutter - Create VENV

👉 Step #2 - Install project dependencies

$ # Install modules
$ pip3 install -r requirements.txt
Django Cookie-Cutter - Install Modules

👉 Step #3 - Set up the database (create tables)

$ python manage.py makemigrations
$ python manage.py migrate
Django Cookie-Cutter - Set up Database

👉 Step #4 - Start the generated Django project

$ # Start the application (development mode)
$ python manage.py runserver
$
$ # Access the web app in the browser: http://127.0.0.1:8000/

The project should look like the original Volt Dashboard (demo link) and the log-in page is shown by default for guest users. Once we create a new user and Sign IN, the access to the private pages is unlocked.

Django Cookie-Cutter - Login Page

Django Cookie-Cutter Volt - Dashboard Page
Django Cookie-Cutter - Dashboard Page

In the same way, we can build more Django projects but use different UI kits without coding anything.

Soft UI - A modern Bootstrap 5 design

Designed for those who like bold elements and beautiful websites, Soft UI Dashboard is ready to help you create stunning websites and web apps. Soft UI Dashboard is built with over 70 frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining.  

Django Cookie-Cutter - Soft UI

Datta Able - a colorful dashboard built on top of Bootstrap 4

Datta Able Bootstrap Lite is the most stylized Bootstrap 4 Lite Admin Template, around all other Lite/Free admin templates in the market. It comes with high feature-rich pages and components with fully developer-centric code.

Django Cookie-Cutter - Datta Able. 

The Django Cookie-Cutter tool will be updated with more options (deployment), UI Themes, and more featured bundled in the codebase.

  • New themes: CoreUI, AdminLTE (popular open-source templates)
  • Deployment: AWS, Google Cloud, HEROKU, Docker
  • Modules: Data tables, Charts, Stripe Payments

The full list with future evolutions can be found here: Django Codebase SPECS.


Thanks for reading! For more resources, please access: