Discover 54 Hidden Gems: Lesser Known Packages for Django. PART II
This article continues to explore list of popular and mostly downloaded Django packages.
You can find start of our journey at PART I
REST
To extend the capabilities of the Django Rest Framework, there are many packages available that improve various aspects.
django-rest-passwordreset (1.3mln downloads/year)
Password reset for django rest framework https://github.com/anexia-it/django-rest-passwordreset
djangorestframework-xml (1.2mln downloads/year)
XML support for Django REST Framework https://github.com/jpadilla/django-rest-framework-xml
djangorestframework-gis (1.1mln downloads/year)
Geographic add-ons for Django Rest Framework https://github.com/openwisp/django-rest-framework-gis
djangorestframework-dataclasses (910k downloads/year)
A dataclasses serializer for the Django REST Framework https://github.com/oxan/djangorestframework-dataclasses
django-rest-knox (870k downloads/year)
Authentication Module for django rest auth https://github.com/James1345/django-rest-knox
Did we forget about django-tastypie? Nope, it’s still in active use and development.
django-tastypie (830k downloads/year)
Creating delicious APIs for Django apps since 2010. https://github.com/django-tastypie/django-tastypie
django-rest-polymorphic (720k downloads/year)
Serializers for Django REST Framework for inherited models that you have created using django-polymorphic
library. https://github.com/denisorehovsky/django-rest-polymorphic
django-elasticsearch-dsl-drf (600k downloads/year)
Integrate Elasticsearch DSL with Django REST framework https://github.com/barseghyanartur/django-elasticsearch-dsl-drf/
Background jobs
The topic of background job processing in Django is an intriguing one as the framework lacks built-in support for it. While Celery is the most commonly used package by the community, there are several alternative options that are well-regarded. However, it’s worth noting that some of these options have not received updates in the past year.
django-crontab (870k downloads/year)
Dead simple crontab powered job scheduling for Django https://github.com/kraiz/django-crontab
django-q (850k downloads/year)
A multiprocessing distributed task queue for Django https://github.com/Koed00/django-q
django-celery (680k downloads/year)
Celery integration for Django http://github.com/celery/django-celery/
Administration
Over the last year we almost forgot about custom Django admin themes, but django-suit is not giving up! The last alpha version was released a couple of months ago, and the project is under active development.
django-suit (980k downloads/year)
An alternative theme/skin/extension for Django administration interface https://github.com/darklow/django-suit alp
django-filer (910 downloads/year)
A file management application for django https://github.com/django-cms/django-filer
Authentication
Any kind of authentication you need can be found as a ready-to-use package for Django.
django-two-factor-auth (1.2mln downloads/year)
Complete Two-Factor Authentication for Django https://github.com/jazzband/django-two-factor-auth
mozilla-django-oidc (1.1mln downloads/year)
A lightweight authentication and access management library for integration with OpenID Connect https://pypi.org/project/mozilla-django-oidc/
djangosaml2 (1mln downloads/year)
A Fully Compliant SAML2 Service Provider https://github.com/IdentityPython/djangosaml2
Forms
The most demanded functionality missing in Django core is support for captcha and autocomplete
django-recaptcha (1.2mln downloads/year)
Django reCAPTCHA form field/widget integration app https://github.com/torchbox/django-recaptcha
django-select2 (1.2mln downloads/year)
Custom autocomplete fields for Django https://github.com/codingjoe/django-select2
Other
Several packages did not fall into any other category, so they are simply listed here
django-hosts (1.1mln downloads/year)
An app to route requests for specific hosts to different URL schemes https://django-hosts.readthedocs.io/en/latest/
django-allow-cidr (1mln downloads/year)
A Django Middleware to enable use of CIDR IP ranges in ALLOWED_HOSTS https://github.com/mozmeao/django-allow-cidr
django-push-notifications (790k downloads/year)
A minimal Django app that implements Device models that can send messages through APNS, FCM/GCM, WNS and WebPush https://github.com/jazzband/django-push-notifications
django-contrib-comments (700k downloads/year)
A framework to attach comments to any model https://github.com/django/django-contrib-comments
django-cms (690k downloads/year)
Open source enterprise content management system based on the Django https://github.com/django-cms/django-cms
django-notifications-hq (670k downloads/year)
A GitHub notification alike app for Django https://github.com/django-notifications/django-notifications
django-tenants (650k downloads/year)
Enables django powered websites to have multiple tenants via PostgreSQL schemas https://github.com/django-tenants/django-tenants
djangoql (620k downloads/year)
Advanced search language for Django, with auto-completion https://github.com/ivelum/djangoql/
django-sql-explorer (600k downloads/year)
SQL Explorer aims to make the flow of data between people fast, simple, and confusion-free https://github.com/groveco/django-sql-explorer
django-dbbackup (600k downloads/year)
Management commands to help backup and restore your project database and media files https://github.com/jazzband/django-dbbackup
Conclusion
the DjangoPackages repository boasts an extensive collection of over 3000 entries. While this may appear to indicate an endless supply of options for Django development, the reality is that not so many packages are actively used. Among the most popular packages, Django itself boasts an impressive 96 million downloads, with the django-rest-framework close behind with 51 million downloads. In comparison, the 200th most popular package has a mere 500k downloads per year. It is important to exercise caution when choosing packages, carefully considering the potential limitations and deficiencies, to ensure a smooth and successful coding experience.
In these articles, we looked at the most popular packages that have been updated in the last year. We hope you found the information helpful in finding the right tools for your Django projects.
Happy coding!