awesome-django/README.md
2022-06-10 14:36:51 +01:00

32 KiB

Awesome Django Awesome

Fork me on GitHub

A curated list of awesome things related to Django. Maintained by William Vincent and Jeff Triplett.

Django logo

Please consider supporting Django by making a donation to the Django Software Foundation, sponsoring via GitHub Sponsors, or buying official merchandise.

Contents

Third-Party Packages

For a complete listing of all available packages, see Django Packages

Admin

  • django-grappelli - A jazzy skin for the admin.
  • django-jazzmin - Drop-in theme for django admin, that utilises AdminLTE 3 & Bootstrap 4 to make yo' admin look jazzy.
  • django-hijack - Admins can log in and work on behalf of other users without having to know their credentials.
  • django-import-export - Django application and library for importing and exporting data with admin integration.
  • django-admin-honeypot - Configure a honeypot to see who's trying to hack your site.
  • django-loginas - "Log in as user" for the Django admin.
  • impostor - Impostor is a Django application which allows staff members to login as a different user by using their own username and password.
  • django-impersonate - Allow superusers to “impersonate” other non-superuser accounts.
  • django-admin-env-notice - Visually distinguish environments in Django Admin, for example: development, staging, production.
  • django-admin-interface - Customize Admin by the admin itself(color, header. title,logo) and popup windows replaced by modals.
  • django-material-admin - Material design for django administration.
  • django-related-admin - A helper library that allows you to write list_displays accross foreign key relationships.
  • django-semantic-admin - Django Semantic UI admin theme.
  • django-jet-reboot - Django Jet is modern template for Django admin interface with improved functionality.
  • django-baton - A cool, modern and responsive django admin application based on bootstrap 5.

APIs

Async

Caching

  • django-cachalot - Caches your Django ORM queries and automatically invalidates them.
  • django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.

Commands

  • django-extensions - Custom management extensions, notably runserver_plus and shell_plus.
  • django-click - Write Django management commands using the click CLI library.
  • django-dbbackup - Management commands to help backup and restore your project database and media files.
  • django-liquidb - Django application to simplify migration management and changes in states of db scheme.

Configuration

  • confidential - Manage configs and secrets (with CLI support).
  • django-environ - Environment variables.
  • django-split-settings - Organize multiple settings files.
  • django-constance - A Django app for storing dynamic settings in pluggable backends (Redis and Django model backend built in) with an integration with the Django admin app.
  • djenv - Load Django settings from environmental variables.
  • django-configurations - eases Django project configuration by relying on the composability of Python classes and following principles of the twelve-factor app.
  • dynaconf - Dynaconf loads django settings from multiple sources (multiple file formats, env vars, redis, vault, etcd), manages secrets and allows for different merging strategies all following the twelve-factor app.

Content Management Systems

ECommerce

  • saleor - GraphQL-based Django E-Commerce Platform.
  • django-shop - Django-based shop system.
  • shuup - Django E-Commerce Platform.
  • django-oscar - Domain-driven e-commerce for Django.

Editors

Files/Images

  • django-cleanup - Zero configuration file/image removal for local and remote files.

Forms

Full-stack frameworks

  • Reactor - Phoenix LiveView, but for Django.
  • Sockpuppet - Build reactive applications with the Django tooling you already know and love.
  • Unicorn - A reactive component framework that progressively enhances a normal Django view, makes AJAX calls in the background, and dynamically updates the DOM.
  • iommi - Toolkit for development of CRUD applications without writing HTML or JavaScript.

General

Logging

  • django-guid - Inject a GUID (Correlation-ID) into every log message in a Django request.
  • DRF-API-Logger - An API Logger for your Django Rest Framework project.

Models

Performance

  • django-perf-rec - Keep detailed records of the performance of your Django code.
  • New Relic - Time middleware, views, and SQL queries.
  • Scout - Time middleware, template rendering, and SQL queries with automatic N+1 detection.
  • django-query-profiler - Django query profiler to help resolve N+1 queries.
  • django-silk - Live profiling and inspection of HTTP requests and database queries.
  • py-spy - Sampling profiler for Python programs.

Search engine optimisation

Security

Static Assets

Task Queues

  • beatserver - A periodic task scheduler for Django.
  • django-q - A multiprocessing distributed task queue.
  • django-rq - Integration for Redis Queue.
  • django-redis - Full featured Redis cache backend for Django.
  • celery - Robust and broker-agnostic task queues for bigger, performance-focused projects.
  • django-celery-beat - A periodic task scheduler with database configured by Django's Admin Panel.
  • celery-exporter - Prometheus & Grafana monitoring of Celery tasks.
  • django-dramatiq - Task processing library with a focus on simplicity, reliability and performance.

Testing

URLs

  • dj-database-url - Database URLs.
  • urlman - A nicer way to do URLs for Django models.
  • django-robots - This is a basic Django application to manage robots.txt files following the robots exclusion protocol, complementing the Django Sitemap contrib app.

Users

  • django-allauth - Improved user registration including social auth.
  • django-organizations - Multi-user accounts for Django projects.
  • django-cas-ng - Django-cas-ng is Django CAS (Central Authentication Service) 1.0/2.0/3.0 client library to support SSO (Single Sign On) and Single Logout (SLO).

Views

Python Packages

A short list of Python packages that work well with Django.

  • bleach - Sanitize your inputs/forms.
  • black - Uncompromising Python code formatter.
  • coveragepy - Code coverage measurement.
  • faker - Faker is a Python package that generates fake data for you.
  • huey - A little task queue for Python.
  • nplusone - Auto-detect n+1 queries.
  • pillow - Python Imaging Library.
  • pytest - Testing framework.
  • python-decouple - Strict separation of settings from code.
  • python-slugify - Returns unicode slugs.
  • sentry-python - Error reporting SDK.
  • whitenoise - Simplified static file serving for Python websites.

Resources

Official Resources

- [Project Website](https://www.djangoproject.com/) - Official Django website.

Educational

Community

  • Django Forum - Official Discourse board.
  • Community Page - Featuring feeds of Community Blog Posts, Jobs, and more.
  • Django Users Google Group - Very active discussion board for questions/answers.
  • Developers Google Group - For contributions to Django itself only.
  • Twitter - For official announcements on updates, security fixes, etc.
  • IRC Channel - Chat with other Django users at irc://irc.freenode.net/django.

Conferences

Newsletters

  • Django News - Weekly newsletter on announcements, articles, projects, and talks.

Podcasts

  • Django Chat - A weekly podcast from William Vincent and Django Fellow Carlton Gibson with discussions of core Django concepts and regular guests.
  • Django Riffs - A new podcast from Matt Layman.
  • Running in Production - Focused on tech stacks with many episodes specifically on Django.
  • TalkPython - The leading Python podcast with several episodes on Django.
  • Podcast Init - A popular Python podcast that features Django guests on occasion.

Books

Django 4.0

Django 3.2

Django 3.0

Hosting

PaaS (Platforms-as-a-Service)

IaaS (Infrastructure-as-a-Service)

Projects

Boilerplate

  • cookiecutter-django - A full-bodied starter project, highly customizable.
  • django-base-site - A Django site with many common third-party packages pre-installed.
  • djangox - Batteries included starter project for Pip, Pipenv, or Docker.
  • DRFx - A DRF starter with user auth, Pipenv, and other goodies.
  • django-project-template - A deliberately basic project that has multiple staging environments and Heroku deployment config.
  • docker-django - A quick starter guide for Django and Docker together.
  • wemake-django-template - Bleeding edge Django template focused on code quality and security.
  • django-webpack-starter - Django Webpack starter template for using Webpack 4.
  • sos-django-template - Django starter template with separate dev and production settings.
  • django-docker-heroku-template - A template with Docker, GitHub Actions, and Heroku set up for dev/test/prod, plus various other best practices.
  • cookiecutter-vue-django - Django + Vue starter project fusing Vue SFCs & Django Templates.
  • launchr - Launchr is a specialized Django starter template for SaaS web apps.

Open Source Projects

Django REST Framework

The most popular way to build web APIs with Django.

DRF Resources

DRF Tutorials

Wagtail

Wagtail, the powerful CMS for modern websites.

Wagtail Resources