Django

Background

We started working with Django back in version 0.96, when the framework was in its first steps. During the years we had been leveraging Django’s ecosystem.

“Their responsiveness made our project a success for all parties.”

Aydin Acar
Aydin Acar Co-Founder & CEO
See case study

Django’s ORM and migrations

We have put Django’s ORM to the limits, by building from simple to very complex queries, with a great focus on optimization. prefetch_related, select_related, defer, only and values_list are our friends when we need to minimize database hits.

We like PostgreSQL. The powerful migration system of Django allow us to handle data and schema migrations seamlessly.

Django's Guidelines
We try hard to apply and improve our guidelines for the django framework.
Read our guidelines

Django’s Admin

Few frameworks could offer such a great admin panel 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 creating customizable and very usable forms.

Assets

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 jpegoptim and optipng.

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.

Test Framework

Django has great tools to create 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.

Cache

We typically use Django’s cache system with Redis or Memcached, and set up projects in order to implement cache at different levels: functions, db queries, templates.

Let's build a great product together
Send

Or send us an email: hi@sophilabs.co
Don't be shy, we would love to hear from you.