I’ve been helping 5Q Communications with some Django work in the past few weeks and will be continuing to work with them for a while. I was excited when we started talking together not just because of Django but because they have a lot of good ideas on how the web should work and how to properly treat clients.
I wasn’t new to Django but it had been a while since I have dug deep into it. More and better tools had been developed and I had to add things to my development/troubleshooting suite. And so here is my list — some I have been using for a while, some 5Q told me about, and some I discovered on my own.
- EasyInstall – this makes installing Python packages so much easier. Even if they don’t have their package on PyPi, you can download, uncompress it, and then it’s simply
easy_install directory_name - VirtualEnv – this is an absolute must, especially if you have different version of Django or other tools for different projects. And, once you are in an VirtualEnv environment, EasyInstall will install files to your Virtual Python library.
- iPython –Installing this will give you the power of iPython when you run
manage.py shell. And you want that — you really do. - django-logging — This is a wonderful little middleware that will put all your logging statements at the bottom of the web page. With another option, it will log all the SQL that Django generates for the database, which was incrediably useful for what I was working on.
- south – This gives you a lot of the power of Rails’ migrations in Django. It’s not 100% there yet, but it’s close. You can even see my patches that fix problems I had with it.
- ack — Not just for Django but for everything. This grep replacement has become a requirement for any of my search-the-codebase tasks.

