We started working with Django back in version 0.96, when the framework was in its first steps. Over the years we have been leveraging Django’s ecosystem.
Django’s ORM and migrations
We have put Django’s ORM to the limits, by building everything from simple to very complex queries, with our main focus on optimization.
values_list are our friends when we need to minimize database hits.
We like PostgreSQL. The powerful Django migration system allows us to handle data and schema migrations seamlessly.
“Their responsiveness made our project a success for all parties.” Aydin Acar - Co-founder and CEO - Influenster
Few frameworks are able to offer an admin panel as great as Django out of the box. Our customers love how fast we can prototype CRUD views using it.
We always use Grappelli to enhance the look & feel of the admin. It comes with a bunch of UI components that help us create customizable and usable forms.
In combination with staticfiles (collectstatic), we use django-compressor to minify and combine css and js precompiled with tools such as babel, sass, and postcss (autoprefixer), served from a CDN. Static or media images (ImageField) are optimized using
Django Two Scoops
Reading this book is a must for our team. We have adopted several practices from it and included them in our guidelines.
See our code guidelines for django.
We try hard to apply and improve our guidelines for the django framework. Read our guidelines.
Django has excellent tools for creating tests.
We use django.test.TestCase and django.test.Client to create unit and functional tests, and Selenium to run our acceptance tests. We use
factory_boy to manage test data and
django-jenkins to measure coverage and run linters in our CI server.
Django Rest Framework
Front end applications become more popular every day making DRF a great tool for providing restful APIs while leveraging all the power of Django on the back end.