Skip to content

A Django project cookiecutter complete with built-in continuous delivery using GitHub actions.

License

Notifications You must be signed in to change notification settings

imAsparky/django-cookiecutter

Repository files navigation

Django 5.0+ Cookiecutter

Version = "0.29.5"

Version 1.0.0 will signify the first stable Django build!

This cookiecutter uses django-tailwind by default. django-tailwind requires Node.js be installed on your development machine.

The minumum version for django-cookiecutter is Python 3.10 because Structural Pattern Matching is used.

A Django project Cookiecutter complete with built-in continuous delivery using GitHub actions.

Dynamic TOML Badge

Python Version from PEP 621 TOML

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. Codacy Quality Updates pre-commit Documentation Status Python Sementic Release

Django Project Features

  1. Easy for new users to learn Django with sensible defaults. Also, local and test environments default to using SQLite, Django's bundled database.
  2. More advanced users can change the test environment database with an environment variable to match the production environment. See the How-to here.
  3. Django-allauth provides authentication.
  4. A CustomUser model, complete with tests and custom user types. See How-to Custom User for customisation options before your initial migration.
  5. Improved Admin panel security requires an authorised user to be logged in. The Admin panel now has the protections provided by django-allauth.
  6. htmx built in by default using django-htmx.
  7. django-tailwind and django-browser-reload built in by default.
  8. Customisable logging with rotating log files, see how-to-logging.

If you are new to Django and Cookiecutters and would like to take it for a spin, see our tutorial, Create a Django-Cookiecutter Project.

Django Project Creation Options

Customise your project with the following options when creating your django-cookiecutter.

If you are new to Django and arent sure what to select, choose the default setting to get the best new user experience.

Django Settings

  1. Quickly configure common Django settings as you setup your project.

Docker

  1. Deploy to production with Docker.

Documentation

  1. Add documentation using Sphinx with:
    1. Furo, a clean modern theme, with dark and light mode options.
    2. A Copy Button to assist your users copy text or code snippets.
    3. Inline Tabs to group similar items.
    4. Use markdown or restructured text.
  2. Deploy to Read the Docs.
  3. A documentation framework with templates using the Diátaxis framework
  4. A Pre-generated Contributing How-to. Edit to suit your needs.

GitHub Helpers

  1. A set of four custom GitHub Issues templates to help your users.
  2. Create the local git repository and make the initial commit automatically.
  3. A Conventional commits style custom commits message template.

Workflow Helpers

  1. Pre-commit for code quality help and a README badge.
  2. A Python Semantic Release GitHub action and a README badge.
  3. A test suite complete with py3.10, py3.11, Linux, macOS and Windows matrix.

Communication

  1. Choose from five LICENSE types for open source projects.
  2. Choose from three Repository Status Badges. Quickly communicate to potential users.

Dynamic Settings

Choose to add django-constance for dynamic Django settings, which allows you to:

  1. Easily migrate your static settings to dynamic settings.
  2. Edit dynamic settings in the Django Admin interface.

See our django-constance How-to for more information.

Contributing

Contributions are very welcome and appreciated!

You can contribute in many ways.

See How-to Contribute to help you get started.

Please take a moment to read our Code of Conduct.