mirror of
https://github.com/wsvincent/awesome-django.git
synced 2024-12-18 16:20:16 +00:00
44 KiB
44 KiB
Awesome Django
A curated list of awesome things related to Django. Maintained by Will Vincent and Jeff Triplett.
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
- Admin
- Admin Themes
- APIs
- Async
- Caching
- Commands
- Configuration
- Content Management Systems
- Database Connectors
- ECommerce
- Editors
- Files/Images
- Forms
- Full-stack frameworks
- General
- Internationalisation (i18n)
- Logging
- Monitoring
- Mailing
- Model Fields
- Models
- Performance
- Permissions
- Search
- Search Engine Optimisation
- Security
- Static Assets
- Task Queues
- Templates
- Testing
- URLs
- Users
- Views
- Python Packages
- Resources
- Hosting
- Projects
- Django REST Framework
- Wagtail
Third-Party Packages
For a complete listing of all available packages, see Django Packages
Admin
- 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-related-admin - A helper library that allows you to write list_displays across foreign key relationships.
- django-admin-sortable2 - Generic drag-and-drop ordering for objects in the Django admin interface.
Admin Themes
- 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-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-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-unfold - Modern Django admin theme for seamless interface development.
- django-daisy - A modern django dashboard fully responsive built with daisyui
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.
- graphene-django-filter - Advanced filters implementing and/or/not operators in 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.
- drf-spectacular - Sane and flexible OpenAPI 3 schema generation for Django REST framework.
- django-webhook - A plug-and-play Django app for sending outgoing webhooks on model changes.
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.
- django-migration-zero - Holistic implementation of "migration zero" pattern for Django covering local changes and in-production database adjustments.
- django-typer - Write Django management commands using the Typer CLI library.
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.
- 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.
- environs - Simplified environment variable parsing that comes with a Django helper that installs additional packages.
- django-classy-settings - Class based settings to keep your environments in order, with easy access to typed environment variables.
- django-content-settings - Easily create and manage editable typed variables directly from the Django admin panel.
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-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.
- django-prose - A light weight editor to content creation.
- django-ace - ACE 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.
- sorl-thumbnail - Thumbnails for Django.
Forms
- django-bleach - Integrate bleach into forms and models. See
django-nh3
as an alternative. - 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
- Django-Bridge - The simple way to build React frontends for Django applications.
- ReactPy - It's React, but in Python. Insert dynamically rendered Python into Django templates using the ReactPy-Django module.
- 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-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.
- django-nh3 - Django integration with for nh3 and is an alternative for django-bleach.
- Weblate - Weblate is a copylefted libre software web-based continuous localization system, used by over 2500 libre projects and companies in more than 165 countries.
- Django-Classy-Doc - Document your own code in the style of CCBV and CDRF.
Internationalisation (i18n)
- django-localflavor - A collection of functionality that is useful for particular countries or cultures. Previously a part of the Django core.
- django-modeltrans - Translate Django model fields in a JSONField.
- django-modeltranslations - Translates Django models using a registration approach.
- django-rosetta - Rosetta provides a UI to read and write your project's gettext catalogs within the Django Admin.
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.
Monitoring
- django-prometheus - Export Django monitoring metrics to Prometheus.
- django-mixin - Monitoring mixin for Django-prometheus. A set of Grafana dashboards and Prometheus rules for Django.
Mailing
- django-pony-express - Class-based emails including a test suite for Django.
- django-anymail - Django email backends and webhooks for Amazon SES, Brevo (Sendinblue), MailerSend, Mailgun, Mailjet, Postmark, Postal, Resend, SendGrid, SparkPost, Unisender Go and more.
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.
- django-auto-prefetch - Automatically prefetch foreign key values as needed.
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.
- django-zeal - Detect N+1 queries with user-friendly error messages
Permissions
- django-role-permissions - Django app for role-based permissions management.
- django-guardian - Per object permissions in Django.
- django-rules - A tiny but powerful app providing object-level permissions, built from the ground up for Django.
Search
- django-haystack - Modular search for Django.
- django-watson - Full-text search plugin.
- django-admin-search - Modal filter for django admin.
- django-elasticsearch-dsl - Elasticsearch DSL integration for Django.
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.
- whitenoise - Simplified static file serving for Python websites.
Task Queues
- beatserver - A periodic task scheduler for Django.
- django-q2 - A multiprocessing distributed task queue for Django.
- 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.
- django-celery-results - Celery result backend with Django.
- django-tasks - A reference implementation and backport of background workers and tasks in Django, based on DEP 14.
Templates
- curlylint - Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid.
- django-components - A way to create simple reusable template components in Django.
- django-template-partials - Reusable named inline partials for the Django Template Language.
- djhtml - Django/Jinja template indenter.
- djlint - Lint & Format HTML Templates.
- slippers - Build reusable components in Django without writing a single line of Python.
- JinjaX - Super components powers for your Jinja templates.
- django-cotton - Goodbye
{% raw %}{%{% endraw %} extends, block, include {% raw %}%}{% endraw %}
, Hello<c-component />
. Bringing modern UI composition to Django.
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.
- storybook-django - Develop Django UI components in isolation, with Storybook.
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-allauth-ui - Better looking templates for django-allauth.
- django-improved-user - A custom Django user that authenticates via email. Follows identity and authentication best practices.
- 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).
- django-guest-user - Allow visitors to use your site like a regular user and register later.
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.
- neapolitan - Quick CRUD views for Django.
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.
- python-socketio - Python implementation of the Socket.IO_ realtime client and server. (create Socket.io Django server instance)
- Ruff - An extremely fast Python linter and code formatter, written in Rust.
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.
- Photon Designer - Django tutorials - Django tutorials by Tom Dekan on how to build Django apps simply - from how to build an instant messenger with Django, add instant search, to using Google Drive as a database. Updated regularly.
- 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 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.
- Django for Everybody - A complete course for webdev beginners focused on Django.
- CS50W - Harvard's University introductory course to web development, it explains Django as backend framework.
Community
- Django Forum - Official Discourse board.
- Community Page - Featuring feeds of Community Blog Posts, Jobs, and more.
- Local Django Communities Page - Featuring local events all around the world.
- Django Users Google Group - Very active discussion board for questions/answers.
- Developers Google Group - For contributions to Django itself only.
- Mastodon - For official announcements on updates, security fixes, etc.
- X (formerly 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.
- Djangonaut Space - Free peer-mentoring program for the Django community to launch people into the universe of open source contributions.
Conferences
- DjangoCon US (YouTube Channel)
- DjangoCon Europe (YouTube Channel)
- DjangoCon AU
- DjangoCon Africa
- Django Day Copenhagen (YouTube Channel)
- PyCon US (YouTube Channel)
- PyCon Australia (YouTube Channel)
- Euro Python (YouTube Channel)
- Django Under the Hood
- DjangoCongress JP (YouTube Channel)
- Complete listing of all PyCons globally
Job Boards
- Django News Jobs - A Django job board that also aggregates other job boards.
- Django Gigs - This platform caters specifically to freelance and full-time Django developers.
- Django Jobs - Django jobs posting for hiring Django Python developers.
- Python.org Job Boards - While not exclusively for Django, this job board is hosted by the official Python website and features a range of Python and Django-related job opportunities.
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.
Videos
- DjangoTV - Your source for Django conference videos and tutorials.
- PyVideo - PyVideo is an index of Python related media.
Books
For a complete listing of in-print books check out DjangoBook.com.
Django 5
Django 4
- Django for APIs: Build web APIs with Python and Django
- Django for Professionals: Production websites with Python and Django
- Understand Django: An Exploration of the Django Web Framework
Django 3
- 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
- Piku
- 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.
- django-docker-template - Dockerized Django with Postgres, Gunicorn, and Traefik (with auto renew Let's Encrypt).
- 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.
- sidewinder - A Django starter kit that focuses on good defaults, developer experience, and deployment.
- Falco - Enhance your Django developer experience: CLI and Guides for the Modern Django Developer.
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.
- OpenContracts - Enterprise-grade document analytics platform that combines automated PDF parsing, vector embeddings, and LLM integration.
Django REST Framework
The most popular way to build web APIs with Django.
DRF Resources
DRF Tutorials
- Official REST Framework - A Beginner's Guide
- Building APIs with Django and DRF
- DRF with React
- Making React and Django play well together
Wagtail
Wagtail, the powerful CMS for modern websites.
Wagtail Resources
- Official website
- Developer documentation
- User documentation
- Wagtail Source Code
- awesome-wagtail
- This week in Wagtail - A (most) weekly email with updates from the Wagtail core team.
- Wagtail Space - Wagtail conferences around the world.
- Wagtail events - Online and in-person Wagtail events.