Productification

Intersection between Technology, User Experience and Product Innovation


02 Mar

django-reviews - Generic ratings and review application for django projects


django-reviews - A generic review application for Django projects, which allows association of a number of reviews with any Model instance and makes retrieval of reviews simple.

django reviews

I dug around the django space and couldn’t find a generic review application that would allow users to add a review (including ratings) to an entity. So, I decided to write one myself. The current application is modeled similar to django comments. The screenshot above is what you can use the application for.


22 Feb

Twitter clone in Django


Want to incorporate Twitter like functionality in your existing Django application? Check out Trillr.

trillr_screenshot

Trillr is a microblogging application like Twitter. They have recently made their code open source.


No Response Filed under: Django Tags:
20 Feb

Django - Login with email or username


This snippet allows you to login with either username or email in your Django applications. All you have to do is add the middleware and combine it in the authentication backends.


1 Response Filed under: Development, Django
04 Feb

Django meets Solr - django-solr-search


Last month, I wrote about various options on providing search in Django based applications. Kudos to Sean at screely.com for finishing the conversion of Django Solr module to Django 1.0. This adds one more to the list, and perhaps replacing the django lucene module. You can find the code, and other related links on the project page hosted at Google Code.

Providing Search and Faceted Navigation to Django application just became a little easier with this.


16 Jan

Providing Search in Django based applications


I have seen many Django based applications that do not provide intuitive and powerful search capabilities to their users. If you pickup a product created in django and try to do a search, you will be disappointed by the fact that the search is so primitive. No spelling correction, no fuzzy searching, no complex multi-field searches as well. Oh .. and more over, don’t even think about relevance based search.

I have created some applications, but I have been mostly written one-off custom code to integrate best of the breed open source engines like Solr and Lucene into my web applications. While doing that, it got me thinking -

What are the options that a developer has, to provide search in an django based application?

  1. Use of “contains” using QuerySet API
  2. Use Django Sphinx
  3. Use - django-search-lucene app

The first approach is by far the most commonly used in Django applications. What it does is that it makes use of the underlying LIKE operator of the database. The problem is with this approach is that it’s too primitive. No Relevancy, No complex constraints, and won’t work for multi-word query where the two words don’t appear together.

Second option is to use django-sphinx project. Sphinx is an open source search engine, that was primarily written to integrate well with databases (SQL focused). Though, it seems to be gaining some momentum, but for a really poweful and featureful search engine, I have found Lucene much better. Also, the integration with django requires you to install and set it up as separate server, which is always more than you are looking for.

Lastly, there is an app called django-search-lucene that provides lucene and django integration using PyLucene (Python port of Lucene). The application provides easy integration with Django ORM and simple APIs to perform search. Moreover, for power users, they have exposed an api where you can fire native lucene queries. In addition to that, it also exposes some basic status reporting in the Django admin, which is helpful is monitoring the index / searches.

I am also noticing a flurry of activity in the last 48 hours on the project and am curious to know what new additions are being made.

Next time when you are creating a django based application, look at the kind of search that you are providing to your userbase and see if you can use one of the two (2,3) options above to enhance their experience. Also, do tell me what your experience was - always looking forward to hear that.


1 Response Filed under: Django, Search Tags: ,
04 Nov

Scriptify your Django deployments using Fabric


Anyone who has worked on a decent size product where Django is serving as the web front, understands how monotonous the update / deployment procedure gets. Especially, when you have more than a couple of servers serving your user base. And if you are one of the companies who have embraced the cloud computing platform (Amazon Web Services), then you already have an appreciation for the problem.

Fabric is one such tool that helps in solving that problem.

Fabric is a tool that, at its core, logs into a number of hosts with SSH, and executes a set of commands, and possibly uploads or downloads files.

Check out Will Larsen’s post on how you can use Fabric. He has done a great job of explaining it.