Top 10 Django Third-Party Packages

Django is a "batteries-included" web framework, but it really shines with its robust ecosystem of third-party packages that add additional functionality to the framework. There are almost 4,000 available at this point, all of which are viewable on the lovely Django Packages website. However, navigating all of them can be overwhelming.

The awesome-django repo is a curated list of many popular third-party packages, and there's a separate post on The 10 Most-Used Django Packages. On the official Django forum, a lively debate remains around the Top 5 3rd party packages.

But if you're interested in a greatest-hits list, here you go. These are some of the best and most popular Django third-party packages that I reach for in almost every new project.

1. Django REST Framework (DRF)

Django REST Framework (DRF) makes creating a REST API from scratch or adding an API to an existing Django website easy. It purposefully mimics many Django conventions and provides robust serialization so you can format your data as you choose. A large community actively maintains the package, with its own ecosystem of related third-party packages.

Most Django developers, if forced to pick only one third-party package, would select DRF. It is that important. And it is also the most downloaded Django third-party package by far.

2. django-debug-toolbar

django-debug-toolbar is included in the local development of almost every Django project. It helps debug Django applications and comes with a configurable set of panels to inspect various areas of a website, including SQL queries, request and responses, and general performance insights. The package has been around since the beginning of Django and is a mainstay of modern Django development.

3. django-extensions

The true Swiss Army watch of useful additions to Django. There is a long list of command extensions, but particular favorites are shell_plus for autoloading database models in the Python shell and runserver_plus for an improved local web server powered by Werkzeug.

4. django-cors-headers

If you are building an API with Django, you'll need a way to add Cross-Origin Resource Sharing (CORS) headers to responses. This package handles that issue seamlessly and elegantly.

5. django-allauth

Django's built-in authentication system is powerful, but django-allauth takes it to another level. It adds many improvements to Django's registration defaults, including social authentication, email-only login, and many more features.

6. Wagtail

Wagtail is a content management system built on Django that provides flexibility and an excellent user experience. If you need a Python CMS, Wagtail is the go-to option. It has its own Wagtail third-party packages site, conferences, and a fantastic community led by the development team at Torchbox.

7. django-filter

An improved way to filter Django QuerySets based on user selections. It also has robust support for adding filters to Django REST Framework.

8. django-storages

Are you handling user-uploaded content, commonly called media, in the Django world? Or maybe use a dedicated CDN like S3 for your static files? django-storages has you covered with support for multiple storage providers, including Amazon S3, Azure Storage, Digital Ocean, Google Cloud Storage, and more.

9. django-environ

Secret information should be stored in environment variables, not in source code, especially your SECRET_KEY, any API keys, database credentials, payment info, and so on. django-environ is the most popular Django-specific option though other popular approaches include python-dotenv and environs.

10. django-anymail

Sending email is a core part of any user registration process, and this package seamlessly works with the most popular email service providers, including Amazon SES, MailGun, SendGrid, and more.


Additional Third-Party Packages

It's hard to stop at just ten third-party packages. If this list were longer, it would include the following packages, too:


Python Packages

Many Python packages are critical parts of the Django ecosystem but can be used more broadly. The following is a list of the most commonly used in Django projects:

Join My Newsletter

Subscribe to get the latest tutorials/writings by email.

    No spam. Unsubscribe at any time.