33 projects that make developing django apps awesome

There are many reasons why I like developing web applications with Python and Django but the main one is the awesome community and projects around the language and framework. Every time I search for something there’s always a Django or Python project available to make my life easier.

Here’s an incomplete list of Python and django related projects that I have used or I’m planning to test. This might help someone starting out to get an idea of how awesome is to work with this technologies.

Django Debug Toolbar
The Django Debug Toolbar is a configurable set of panels that display various debug information about the current request/response and when clicked, display more details about the panel’s content.

South brings migrations to Django applications. Its main objectives are to provide a simple, stable and database-independent migration layer to prevent all the hassle schema changes over time bring to your Django applications.

Django Paypal
Django PayPal is a pluggable application that implements with PayPal Payments Standard and Payments Pro.

Django Avatar
A reusable django application for handling Avatars.

Shameless plug. I made this. It deploys django apps to Amazon EC2 with ONE command.

Django Exceptional
A Django client for Exceptional (www.getexceptional.com)

Django Easy Maps
This app makes it easy to display a map for given address in django templates. No API keys, manual geocoding, html/js copy-pasting or django model changes is needed.

Django Extensions
It provides a plethora of useful manage.py commands, and a couple other little goodies as well.

Django-based platform for rapidly developing websites

Django CMS
A Django application for managing hierarchical pages of content, possibly in multiple languages and/or on multiple sites.

Django Sentry
Sentry provides you with a generic interface to view and interact with your error logs. By default, it will catch any exception thrown by Django and store it in a database.

Django Haystack
Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Whoosh, Xapian, etc.) without having to modify your code.

Django Celery
Provides Celery integration for Django; Using the Django ORM and cache backend for storing results, autodiscovery of task modules for applications listed in INSTALLED_APPS, and more.

Piston is a relatively small Django application that lets you create application programming interfaces (API) for your sites.

Creating delicious APIs for Django apps since 2010.

Django social authentication made simple.

Django Social Registration
Django Social Registration enables developers to add alternative registration methods based on third party sites. Supported methods currently are: OpenID, OAuth, Facebook Connect.

Django Basic Apps
Simple prebuilt applications for Django projects.

Django forms are easily rendered as tables, paragraphs, and unordered lists. However, elegantly rendered div based forms is something you have to do by hand. The purpose of this application is to provide a simple tag and/or filter that lets you quickly render forms in a div format.

Django-filter is a reusable Django application for allowing users to filter queryset dynamically.

Simple tagging for django

A Django blog engine leveraging reusable apps for all its features.

A drop in replacement for Django’s built-in runserver command. Features include: An extendable interface for handling things such as real-time logging. Integration with the werkzeug interactive debugger. An improved runserver allowing you to process requests simultaneously.

FeinCMS is an extremely stupid content management system. It knows nothing about content — just enough to create an admin interface for your own page content types. It lets you reorder page content blocks using a drag-drop interface, and you can add as many content blocks to a region (f.e. the sidebar, the main content region or something else which I haven’t thought of yet). It provides helper functions, which provide ordered lists of page content blocks. That’s all.

A calendaring/scheduling application, featuring: one-time and recurring events, calendar exceptions (occurrences changed or cancelled), occurrences accessible through Event API and Period API, relations of events to generic objects, ready to use, nice user interface, view day, week, month, three months and year and project sample which can be launched immediately and reused in your project.

An extension to the Django web framework that provides comprehensive version control facilities.

A reusable Django app for queuing the sending of email

Many sites need to notify users when certain events have occurred and to allow
configurable options as to how those notifications are to be received. The project aims to provide a Django app for this sort of functionality. This
includes: submission of notification messages by other apps, notification messages on signing in, notification messages via email (configurable by user) and notification messages via feed.

A set of utilities for creating robust pagination tools throughout a django application.

Other not django specific projects that help me with web development

Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions.

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP Server for UNIX. It’s a pre-fork worker model ported from Ruby’s Unicorn project.

Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

30 Días de Experimentos

Hace exactamente un mes empecé a trabajar de lleno en definir la idea en la que trabajaría el resto del año. Este mes ha probado ser muy divertido, emocionante y aterrador a la misma vez. Un día estas lleno de ideas y el otro no tienes nada. El único constante ha sido la necesidad de construir cosas y eso he hecho.

CSV to XML Conversion in Python

Just finished this python script to convert csv files into xml. The resulting xml will retain the column names from the csv. Please leave a comment if you find this script useful or if you find a bug.


Cuando organizamos el Barcamp anterior se nos ocurrió hacer un app de registro (Barcampinator) para los visitantes. El app debería guardar la información de los visitantes, mantener el orden de las presentaciones y mostrar los tweets que se produzcan con el “hash tag” del evento.

Este app lo hicimos entre @jpadilla_ y yo. Como es de esperarse coordinar un evento como este es difícil así que app estuvo listo solo una horas antes de que llegara el primer invitado. Tuvimos que correr el app desde mi laptop porque no había tiempo para hacer deployment en un servidor. Encontramos al menos 4 o 5 bugs mientras los primeros presentadores hablaban y se corregían al momento. Fue divertido y un poco estresante. En fin el app funcionó, nos ayudó a guardar la data de los invitados y además comunicaba efectivamente quien estaba hablando y quienes hablarían luego.

El app tiene dos pantallas principales una es la pantalla de registro donde los invitados entran su información personal y nos dejan saber si tienen una presentación. La segunda pantalla está diseñada para ser proyectada en un monitor. Esta muestra quien está hablando, quienes serán los próximos, y los tweets del evento.

Desde que decidimos hacer este app estábamos seguros que lo liberaríamos como open source una vez acabara el evento. En las pasadas semanas @jpadilla_ ha hecho varios bug fixes y ha publicado el source en github para que cualquier persona pueda bajarlo, instalarlo, editarlo, copiarlo y en fin hacer lo que quiera. Creemos que este app va a ayudar a los organizadores de otros Barcamps, como nos ayudo a nosotros.

Para la próxima versión del app esperamos tener unos cuantos features nuevos. Entre ellos esperamos que el app envie tweets del estatus del evento periodicamente. Otra cosa que nos facilitaría la vida sería tener una pantalla de control que funcione con iPhones para poder dejarle saber al app cuando empieza cada presentador, de esta manera podemos hacer correr el reloj.

Update: Screenshots adicionales

Aprovecho esta oportunidad para invitar a todos los que estén en San Juan, Puerto Rico el viernes 11 de febrero de 2011 a visitar y participar en Barcamp San Juan v2. La meta es tener tantas presentaciones interesantes como la vez anterior. Los esperamos.