Django is such a diverse and intricate back-end web framework. One of the best things that we can do with Django is that we can install various packages/apps. These packages and apps help to provide our application with additional out of the box functionality.

Package #1 - Django REST framework (DRF)

The DRF allows Django developers to build any HTTP-based RestAPI. DRF is applauded for providing developers with potent and flexible tools. It also comes with detailed documentation.


Package #2 - Celery

Celery is a distributed task queue that can be used to assist Django web applications with multi-threading. In the process Celery also helps to offload work from our apps, since we can send tasks that are time intensive to Celery's task queue.


Package #3 - Django channels

Django channels provides WebSocket async support in Django. It is also highly customizable so it can be used for a variety of use cases.


Package #4 - Django-environ

Although, there are many packages that can be used to help us to configure environment variables within our Django applications. Django-environ is one of the simplest and most effective packages that allows us to do just that.


Package #5 - Django-two-factor-auth

One of my favourite packages. The best part of this package is in the fact that you can configure two factor authentication in multiple ways, not just via a typical token generator.


Package #6 - Django-crispy-forms

If you want to improve the styling of your user forms, then Django-crispy-forms is an absolute must use. It provides our users with a clean and pleasant form for our users to work with.


Package #7 - Django-simple-captcha

User forms can be used by bots, therefore it's important to somehow verify that the user submitting the form is indeed a human. A good way to test this is to make use of a simple captcha.


That's that! Happy learning!