`django_extensions`. Once you `shell_plus –notebook` and start using Jupyter to prototype, you never go back.
If you haven’t done this before, install `django_extensions` and `jupyter`. Run `./manage.py shell_plus –notebook` and you’ll get up a Jupyter notebook server with Django ready to go.
Some useful bits from my workflow:
* pd.DataFrame(list(Model.objects.all().values())) (you can make a Manager to do Model.objects.to_dataframe() too)
* Make a keybinding for ‘restart kernel’, as you probably want to do this a lot.
* Set a variable in settings.py to detect when you’re in a notebook environment and configure logging appropriately. (try/except around `get_ipython()`)
`django-rest-framework` make APIs
`django-auditlog` log model changes
`django-crispy-forms` form layout and rendering
`django-debug-toolbar` many useful features, but especially for tracking number of SQL queries
`django-pipeline` minify/bundle your html, css, js
Django-mail-templated, let’s you write email templates exact like page templates, full HTML with variables and logic etc, and then send them with the in built send_mail
DRF, axes (or Django defender) and raven (Sentry). django-tenants is very nice for a saas product.
`django_extensions`. Once you `shell_plus –notebook` and start using Jupyter to prototype, you never go back.
If you haven’t done this before, install `django_extensions` and `jupyter`. Run `./manage.py shell_plus –notebook` and you’ll get up a Jupyter notebook server with Django ready to go.
Some useful bits from my workflow:
* pd.DataFrame(list(Model.objects.all().values())) (you can make a Manager to do Model.objects.to_dataframe() too)
* Make a keybinding for ‘restart kernel’, as you probably want to do this a lot.
* Set a variable in settings.py to detect when you’re in a notebook environment and configure logging appropriately. (try/except around `get_ipython()`)
Django debug toolbar. It’s a life changer.
`django-rest-framework` make APIs
`django-auditlog` log model changes
`django-crispy-forms` form layout and rendering
`django-debug-toolbar` many useful features, but especially for tracking number of SQL queries
`django-pipeline` minify/bundle your html, css, js
Django rules for object level permissions and great business logic support. Very simple to add to existing project.
My two go-tos for end user query enhancement.
Django-SQL-Explorer: [https://github.com/groveco/django-sql-explorer](https://github.com/groveco/django-sql-explorer)
DjangoQL: [https://github.com/ivelum/djangoql](https://github.com/ivelum/djangoql)
Django-mail-templated, let’s you write email templates exact like page templates, full HTML with variables and logic etc, and then send them with the in built send_mail
Here’s a thread from September 2018:
https://www.reddit.com/r/django/comments/9c219r/what_are_your_favorite_django_packages_in_2018/
[django-hardcopy](https://github.com/loftylabs/django-hardcopy/) for PDF generation.
**Django-Rest-Framework** \- always be there ❤
**django\_extensions** \- very util for common task, e.g \`show\_urls\` to reverse in DRF.
https://github.com/django-crispy-forms/django-crispy-forms
* Django Debug Toolbar (Mandatory!)
* DRF
* Pytest
* Coverage
* Crispy Forms if you want something presentable from the start
* django-crispy-forms
* django-extensions
* django-debug-toolbar
django-ratelimit-backend – Secure login page by preventing DDOS login attempts
django-mptt – For any tree traversals