10 Popular Django Apps
There are lots and lots of django applications do almost all kinds of works. So if you need a extra function which django framework do not provide, check those apps before write your own apps which may have bugs or not so robust. The articles introduce 10 top popular ones of them.
1. South
The "South" app comes first of course not by accident. It's the app that all django site should have. If you had enough of changing db schema everytime your change the models. Just forget the "syncdb" and use South, which handler schema migration automatically.
A few key features of South:
- Automatic migration creation
- Database independence
- App-savvy: Allow you to use migrations only for some of your apps
- VCS-proof: Detect migrations conflict
2. 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.
3. haystack
Almost every sites need a search function, while almost no one knows how to write a search engine. Haystack is the one do such thing for you. 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.
4. Celery
Celery is in fact not just a django app, is is an open source asynchronous task queue/job processing based on distributed message passing.
With Celery you can make the long-time request execute asynchronous. It is focused on real-time operation, but supports scheduling as well.
A simple example:
from celery.task import task
@task
def add(x, y):
return x + yYou can execute the task in the background, or wait for it to finish:
>>> result = add.delay(4, 4) >>> result.wait()
There is a tutorial about Integrating Celery with Django.
5. django-sentry
Django uses Python’s builtin logging module to perform system logging. However it's not very convenient for developer to check the log real time online.
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. With this it allows you to interact and view near real-time information to discover issues and more easily trace them in your application.
6. sorl-thumbnail
This app help you generate thumbnails for images in an easiest way. Just write in your template something like this:
{% thumbnail "http://www.aino.se/media/i/logo.png" "40x40" crop="80% top" as im %}
<img src="{{ im.url }}">
{% endthumbnail %}
There is an alternate choice -- easy-thumbnails do the similar work.
7. django-piston
Piston is a relatively small Django application that lets you create restful APIs in django.
8. django-notification
This app allow your site notify users when certain events have occurred, with configurable options about how those notifications are to be received.
These notifications include:
- submission of notification messages by other apps
- notification messages on signing in
- notification messages via email / feed
9. django-tagging
Django-tagging is a generic tagging application, which allows association of tags with any Model instance and makes retrieval of tags simple.
There is another tag application called Django-taggit do the similar things, which someone says better than django-tagging.
10. django-reversion
django-reversion is comprehensive version control application for django. It has features like:
- Roll back to any point in a model's history
- Recover deleted models
- Admin integration for maximum usability
- ...
django-reversion can be easily added to your existing Django project with an absolute minimum of code changes.
Others
There is a details list of open source projects and applications about django at Django Resources. Check it if you can't find the app you need in above.
Copyright by HostUCan.
Unauthorized reproduction is prohibited.




