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 file in …
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 the things I love about the DevOps movement is how (when done right) it empowers developers to work with infrastructure in a safe and controlled manner. Once you’ve nailed down deployments to a static set of servers (production, …
In this long overdue follow-up to Part 1, I’ll be discussing the infrastructure issues associated with creating and serving image thumbnails at scale. The naive solution to generating thumbnails is to declare the image sizes you want in your templates …
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” in …
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 …
In another of our “you can do that?!?” with uWSGI posts, today I’ll show you how to use uWSGI to host multiple sites and properly route traffic based on the hostname to those sites.
Multiple Sites (aka Emperor Mode)
uWSGI …
April marked Lincoln Loop’s 10th anniversary in business. As I reflect on that, I find myself going through all the typical platitudes: it’s been a roller-coaster ride, how proud I am of the team, looking forward to another 10 years, …