Original submission from, and big thanks to Paul Kenjora.
Modified and improved by Carly Stambaugh.

import hashlib
import urllib
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
# return only the URL of the gravatar
# TEMPLATE USE:  {{ email|gravatar_url:150 }}
def gravatar_url(email, size=40):
  default = ""
  return "" % (hashlib.md5(email.lower()).hexdigest(), urllib.urlencode({'d':default, 's':str(size)}))
# return an image tag with the gravatar
# TEMPLATE USE:  {{ email|gravatar:150 }}
def gravatar(email, size=40):
    url = gravatar_url(email, size)
    return mark_safe('<img src="%s" width="%d" height="%d">' % (url, size, size))

See also: django-gravatar project and if you use Python 3 try out libgravatar. Both are third party libraries and not officially supported by Gravatar.

Blog at