High Performance Django Is Free Online
In 2014 Yann Malet and I (with the help of the rest of the team here) wrote a book about building and scaling Django websites. It was the culmination of things we’d learned from, at the time, close to a …
In 2014 Yann Malet and I (with the help of the rest of the team here) wrote a book about building and scaling Django websites. It was the culmination of things we’d learned from, at the time, close to a …
As you start scaling an application out horizontally (adding more servers/instances), you may run into a problem that requires
distributed locking
. That’s a fancy term, but the concept is simple. Sometimes you have to be sure that when a …
This post covers portions of my talk,
Containerless Django
, from DjangoCon US 2018.
Deploying Python has improved significantly since I started working with it over a decade ago. We have virtualenv, pip, wheels, package hash verification, and
lock
files …
Most of the Django projects I work with take advantage of
django.contrib.auth
. It manages users and groups and is tightly coupled with
django.contrib.admin
. In this post, we are going to explore how it resists a potential attacker.
The …
Every Django project starts with a
manage.py
file in its root. It’s a convenience script that allows you to run administrative tasks like Django’s included
django-admin
.
In
our last post
, we discussed the merits of including a
setup.py …
A client recently asked me why all the Django projects we create have a
setup.py
in the root of the project. Lots of projects get by just fine without one, so why do I use it? The explanation turned out …
Good logging is critical to debugging and troubleshooting problems. Not only is it helpful in local development, but in production it’s indispensable. When reviewing logs for an issue, it’s rare to hear somebody say, “We have too much logging in …
One of Django’s nice “batteries included” features is the ability to send emails when an error is encountered. This is a great feature for small sites where minor problems would otherwise go unnoticed.
Once your site start getting lots of …
One of my favorite patterns in Django is the combination of “fat” models and
cached_property
from
django.utils.functional
.
Fat models are a general MVC concept which encourages pushing logic into methods on your Model layer rather than the Controller (“view” …
Django’s
Signal Dispatcher
is a really powerful feature that you should never use. Ok, it has valid use cases, but they may be rarer than you think.
First, to dispel a misconception about signals, they are not executed asynchronously. There …