25 thoughts on “what are 3 django packages everyone should know about?”

  1. [django-filter](https://django-filter.readthedocs.io/en/stable/) should be a built-in and have admin integration, if you ever need a dynamic but well-structured filtering solution, this is it.

    [django-treebeard](https://django-treebeard.readthedocs.io/en/latest/) if you ever need to store hierarchical data in your database

    [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) because the default forms are good for validation but bad at rendering html

  2. Good topic, I will try them, thanks.
    IMO, Django-debug-toolbar and Django-environ should be considered for every django project

  3. I cannot believe that I have heard about cookiecutter and only finally now taken the time to look into it. Of course it handles all the annoying registration pages and things I have written by hand too many times to count. What a fool.

  4. I blogged about this a while ago. My top 3 packages are:

    1. **django-environ** for easy environment configuration.
    2. **django-extensions** for awesome quality of life additions like `show_urls`, `runserver_plus`, and `shell_plus`.
    3. **whitenoise** for zero-config and high performance static files serving.

  5. [Django rest framework] (https://www.django-rest-framework.org/)
    Awesome for api

    [Django extensions](https://django-extensions.readthedocs.io/en/latest/)
    I love Django jobs. Really handy in my opinion works well will cron jobs

    [Django Email Signals](https://pypi.org/project/django-email-signals/)
    Ok this is my own app so I’m a little biased. But here is an app that allows you to send emails whenever some changes are made to your models. And you can see this all up from the admin panel. The emails, the constraints. The whole lot!

  6. Some of my favorite have already been listed:

    * django-debug-toolbar
    * django-filter
    * django-crispy-forms

    So here’s couple other favorites:

    * [django-constance](https://github.com/jazzband/django-constance) – Set global values using the admin interface.
    * [django-admin-honeypot](https://github.com/dmpayton/django-admin-honeypot) – Move your default admin URL, and use this to track brute force attempts. Gives you a heads up if your site has become a target.
    * [django-health-check](https://github.com/KristianOellegaard/django-health-check) – It gives you a “health check” page you can visit to make sure various parts of your system are working. You can use this page to have something like UptimeRobot alert you if there is a problem. I have it checking the database, firewall, fail2ban and my task queue (see below).
    * [django-q](https://github.com/Koed00/django-q) – Light weight task queue. When celery is too much over head.

  7. * [Waitress](https://github.com/Pylons/waitress/blob/master/docs/index.rst) \- for serving your application easily (pairs very well with [Whitenoise](https://github.com/evansd/whitenoise)).
    * [django-tables2](https://github.com/jieter/django-tables2) \- like crispy forms but for tables, abstracts away the need to render tables in a template.
    * [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) \- have to put this up again, amazing for rendering forms simply.

  8. Lots of my favorite packages have already been mentioned, so I’ll just throw out a few under-appreciated packages that I think more people should know about:

    – [django-cache-memoize](https://django-cache-memoize.readthedocs.io/): Cache functions using the Django cache framework
    – [django-qsstats-magic](https://pypi.org/project/django-qsstats-magic/): Aggregate counts over different time periods easily
    – [django-db-queue](https://github.com/dabapps/django-db-queue): queue without needing redis, celery, etc.

    And one bonus one that is not Django-specific:

    – [poethepoet](https://github.com/nat-n/poethepoet): Nice task-runner that uses `pyproject.toml`


Leave a Comment