https://github.com/wsvincent/awesome-django
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.
- django-admin-sortable2 – Generic drag-and-drop ordering for objects in the Django admin interface.
APIs
- django-rest-framework – Web APIs for Django.
- django-cors-headers – If your back-end and front-end are on different servers, you need this.
- dj-rest-auth – Authentication for Django Rest Framework.
- django-rest-knox – Authentication Module for django-rest-auth.
- djoser – REST implementation of Django auth.
- djaq – An instant remote API to Django models with a powerful query language.
- django-rest-framework-simplejwt – JSON web tokens for DRF.
- django-webpack-loader – Transparently use webpack with Django.
- drf-yasg – Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code.
- graphene-django – GraphQL for Django.
- django-ninja – Django Ninja – Fast Django REST framework based on type annotations.
- django-tastypie – Creating delicious APIs for Django apps since 2010.
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
andshell_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.
- django-extra-settings – Config and manage typed extra settings using just the django admin.
Content Management Systems
- wagtail – Popular Django content management system (CMS). See awesome-wagtail too.
- mezzanine – CMS framework.
- django-cms – CMS for Django.
- feincms – An extensible Django-based CMS.
- puput – Blog app features with Wagtail.
Database Connectors
- djongo – Django and MongoDB database connector.
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
- django-ckeditor – Django admin CKEditor integration.
- django-markdownx – Comprehensive Markdown plugin built for Django.
- django-markdown-editor – Awesome Django Markdown Editor, supported for Bootstrap & Semantic-UI.
- django-business-logic – Visual DSL framework for Django.
- django-quill-editor – Makes Quill.js easy to use on Django Forms and admin sites.
- django-summernote – Summernote is a simple WYSIWYG editor.
- django-tinymce – TinyMCE integration for Django.
Files/Images
- django-cleanup – Zero configuration file/image removal for local and remote files.
- django-imagekit – Django app for processing images for thumbnail, black-and-white and sizes.
- django-pictures – Responsive cross-browser image library using modern codes like AVIF & WebP.
Forms
- django-bleach – Integrate bleach into forms and models.
- django-crispy-forms – DRY Django forms.
- django-floppyforms – Full control of form rendering.
- django-formtools – For form previous and multi-step forms, previously part of Django until 1.8.
- django-widget-tweaks – Tweak form field rendering in templates.
- django-autocomplete-light – Add autocompletion to forms.
- django-shapeshifter – A class-based view to handle multiple forms in one view.
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
- django-data-browser – Interactive, user-friendly database explorer.
- django-filter – Powerful filters based on Django QuerySets.
- django-guardian – Per object permissions in Django.
- django-sql-explorer – Share data via SQL queries.
- django-tables2 – HTML tables with pagination/sorting.
- django-maintenance-mode – Shows a 503 error page when maintenance-mode is on.
- django-freeze – Convert your dynamic django site to a static one with one line of code.
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.
Model Fields
- django-any-urlfield – An improved URL selector to choose between internal models and external URLs.
- django-colorfield – Color field for django models with a nice color-picker widget.
- django-model-utils – Django model mixins and utilities.
- django-money – Money fields for forms/models.
- django-phonenumber-field – Model/form field for normalized phone numbers.
- django-streamfield – Simple StreamField for plain Django admin (based on Wagtail CMS StreamField idea).
Models
- django-lifecycle – Declarative model lifecycle hooks, an alternative to Signals.
- django-mptt – Modified Preorder Tree Traversal; working with trees of Model instances.
- django-taggit – Simple model tags.
- django-reversion – Version control for model instances.
- django-simple-history – Store model history and view/revert changes from the admin.
- django-polymorphic – Django-polymorphic simplifies using inherited models in Django projects.
- django-recurrence – Utility for working with recurring dates in Django.
- django-treenode – Abstract model/admin for tree based stuff.
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.
- pyinstrument – Call stack profiler for Python, Django, Flask, FastAPI.
Search
- django-haystack – Modular search for Django.
- django-watson – Full-text search plugin.
- django-admin-search – Modal filter for django admin.
Search Engine Optimisation
- django-check-seo – Check SEO of pages.
Security
- django-csp – Adds Content-Security-Policy headers to Django.
- django-feature-policy – Set the draft security HTTP header
Feature-Policy
on a Django app. - django-protected-media – Manages media that are considered sensitive in a protected fashion.
- DJ Checkup – Runs several checks on your deployed Django site to check for common security mistakes.
Static Assets
- django-storages – A single library to support multiple custom storage backends for Django.
- django-compressor – Compress JavaScript/CSS into a single cached file.
- easy-thumbnails – Image thumbnails for Django.
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.
- flower – Flower is a web-based tool for monitoring and administrating Celery clusters.
- 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
- django-debug-toolbar – Configurable panels to debug requests/responses.
- pytest-django – Use pytest features in Django.
- django-test-migrations – Test django schema and data migrations, including migrations’ order.
- django-test-plus – Useful additions to Django’s default TestCase.
- factory-boy – Test fixtures replacement.
- django-waffle – A feature flipper for Django.
- model-bakery – Object factory for Django (rename of legacy Model Mommy project).
- django-fakery – An easy-to-use implementation of Creation Methods for Django, backed by Faker.
- drf-openapi-tester – Django test utility for validating Swagger 2.0 and OpenAPI 3.0 documentation.
- django-google-optimize – Django application designed to make running server side Google Optimize A/B tests easy.
- django-pattern-library – Pattern library generator for Django templates, to help testing of UI components.
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.
- django-redirects – Redirects as they should be, with full control.
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
- django-braces – Reusable, generic mixins.
- django-easy-audit – Keep track of user actions.
- django-extra-views – Extra class-based generic views.
- django-vanilla-views – Simpler class-based views in Django.
- django-stronghold – Makes all your Django views default login_required.
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 – Official Django website.
- Documentation – Comprehensive documentation for all Django versions.
- Polls Tutorial – Build a polls tutorial while learning Django internals.
- Source Code – Hosted on GitHub.
Educational
- Django Girls Tutorial – Use function-based views to build a blog app.
- LearnDjango – Tutorials and premium courses on Django and Django REST Framework.
- Adam Johnson – Adam is on the Technical Board of Django and regularly writes tutorials.
- TestDriven – Multiple Django-specific tutorials on topics like Docker, payments, and more.
- Classy Class-Based Views – Detailed descriptions of methods/properties/attributes for each generic class-based view.
- Classy Django Forms – Detailed descriptions of methods/properties/attributes for each form class.
- Classy Django REST Framework – Detailed descriptions with methods/attributes for DRF class-based views and serializers.
- Simple is Better than Complex – Regularly updated website with many tutorials and tips on Django.
- Full Stack Python’s Django Page – Explanation of Django philosophy and links to other resources and tutorials.
- RealPython – Many high-quality tutorials on Django.
- Mozilla Tutorial – Create a lending library app.
- Matt Layman – Regular tutorials and deep-dives on Django topics.
- Django Sites – Comprehensive listing of sites built with Django.
- Django Styleguide – Styleguide for Django with best practices and examples.
- Django Template Tags and Filters – Additional docs on Django’s 57 built-in template filters and 27 template tags.
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.
- Discord Server – Django Discord Community.
- IRC Channel – Chat with other Django users at irc://irc.freenode.net/django.
Conferences
- DjangoCon US (YouTube Channel)
- DjangoCon Europe (YouTube Channel)
- DjangoCon AU
- DjangoCon Africa
- Django Day Copenhagen
- PyCon US (YouTube Channel)
- PyCon Australia (YouTube Channel)
- Euro Python (YouTube Channel)
- Django Under the Hood
- Complete listing of all PyCons globally
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 for Beginners: Build websites with Python and Django
- Boost Your Django DX
- Django for APIs: Build web APIs with Python and Django
- Django for Professionals: Production websites with Python and Django
- Django 4 By Example: Build powerful and reliable Python web applications from scratch
Django 3.2
- Speed Up Your Django Tests
- Two Scoops of Django 3.x: Best Practices for the Django Web Framework
- A Wedge of Django: Covers Python 3.8 and Django 3.x
Hosting
PaaS (Platforms-as-a-Service)
- Appliku
- Dokku
- Divio
- Fly
- Google Cloud
- Heroku
- Microsoft Azure
- Platform.sh
- PythonAnywhere
- Railway
- Render
- Vercel
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.
- django-startproject – Django start project template with batteries.
- 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
- Blog app with users and forms
- Newspaper app with custom user model, full user auth
- pythonic-news – Hacker News clone.
- Behavior-Driven Development with Aloe
- Image Sharing Blog
- Bootcamp: An enterprise social network
- Zulip – Open-source team chat.
- Django-CRM – Open Source Python CRM based on Django.
- django-job-portal – Job portal application using Django.
- Built with Django – Curated list of awesome Django projects.
- PostHog – Open-source product analytics.
- HyperKitty – A web interface to access GNU Mailman v3 archives.
- Healthchecks – A Cron Monitoring Tool written in Python & Django.
- Flagsmith – Open-source Feature Flagging, Remote Config, and AB testing.
Django REST Framework
The most popular way to build web APIs with Django.
DRF Resources
DRF Tutorials
- Official REST Framework – A Beginner’s Guide
- DRF Blog API
- Building APIs with Django and DRF
- DRF with React: Todo API
- DRF with React
- Making React and Django play well together
Wagtail
Wagtail, the powerful CMS for modern websites.
Wagtail Resources
- Official Documentation
- Wagtail Source Code
- awesome-wagtail
- This week in Wagtail – A (most) weekly email with updates from the Wagtail core team.
- Wagtail Space – Wagtail CMS events around the world.