A lightweight django-gravatar app. Includes helper methods for interacting with gravatars outside of template code.
If you like this library and it's saved you some time, please consider supporting further development with a Gittip donation!
Install from PyPi:
You can pip install the app directly from GitHub:
$ pip install git+git://github.com/twaddington/django-gravatar.git#egg=DjangoGravatar
Alternatively, you can now install directly from PyPi!
$ pip install django-gravatar2
Make sure you install django-gravatar2 as there are several other incompatible django-gravatar libraries available.
Add django_gravatar to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = (
    # ...
    'django_gravatar',
)
# django-gravatar
'''
头像风格类型
404:如果没有任何图像与电子邮件哈希无关,则不加载任何图像,而是返回HTTP 404(找不到文件)响应
mp:(神秘人物)一个人的简单卡通风格的轮廓(不随电子邮件哈希值而变化)
identicon:基于电子邮件哈希的几何图案
monsterid:生成的具有不同颜色,面孔等的“怪物”
wavatar:生成的具有不同特征和背景的面孔
retro:生成的令人敬畏的8位街机风格像素化面孔
robohash:具有不同颜色,面部等的生成的机器人
blank:透明的PNG图像(以下为演示目的添加到HTML的边框)
'''
GRAVATAR_DEFAULT_IMAGE = "wavatar"  # 头像风格,一定要填,不填就是默认的头像
GRAVATAR_DEFAULT_SIZE = 48  # 头像大小
GRAVATAR_DEFAULT_SECURE = True  # If True use https, otherwise plain http
GRAVATAR_URL = "http://sdn.geekzu.org/"  # Gravatar http 头像加速域名,链接后面要带 /
GRAVATAR_SECURE_URL = "https://sdn.geekzu.org/"  # Gravatar https 头像加速域名,链接后面要带 /
Use in code:
from django_gravatar.helpers import get_gravatar_url, has_gravatar, get_gravatar_profile_url, calculate_gravatar_hash
url = get_gravatar_url('alice@example.com', size=150)
gravatar_exists = has_gravatar('bob@example.com')
profile_url = get_gravatar_profile_url('alice@example.com')
email_hash = calculate_gravatar_hash('alice@example.com')
Use in templates:
{% load gravatar %}
{% gravatar_url user.email 150 %}
# https://secure.gravatar.com/avatar/hash.jpg?size=150
{% gravatar user.email 150 %}
# <img class="gravatar" src="https://secure.gravatar.com/avatar/hash.jpg?size=150" width="150" height="150" alt="" />
{% gravatar user.email 150 "user@example.com" %}
# <img class="gravatar" src="https://secure.gravatar.com/avatar/hash.jpg?size=150" width="150" height="150" alt="user@example.com" />
{% gravatar_profile_url user.email %}
# https://secure.gravatar.com/hash
The following options can be configured in your settings.py:
GRAVATAR_URL # Gravatar base url. Defaults to 'http://www.gravatar.com/'
GRAVATAR_SECURE_URL # Gravatar base secure https url. Defaults to 'https://secure.gravatar.com/'
GRAVATAR_DEFAULT_SIZE # Gravatar size in pixels. Defaults to '80'
GRAVATAR_DEFAULT_IMAGE # An image url or one of the following: 'mm', 'identicon', 'monsterid', 'wavatar', 'retro'. Defaults to 'mm'
GRAVATAR_DEFAULT_RATING # One of the following: 'g', 'pg', 'r', 'x'. Defaults to 'g'
GRAVATAR_DEFAULT_SECURE # True to use https by default, False for plain http. Defaults to True
gravatar.com ->
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 }}
@register.filter
def gravatar_url(email, size=40):
  default = "https://example.com/static/images/defaultavatar.jpg"
  return "https://www.gravatar.com/avatar/%s?%s" % (hashlib.md5(email.lower()).hexdigest(), urllib.urlencode({'d':default, 's':str(size)}))
 
# return an image tag with the gravatar
# TEMPLATE USE:  {{ email|gravatar:150 }}
@register.filter
def gravatar(email, size=40):
    url = gravatar_url(email, size)
    return mark_safe('<img src="%s" height="%d" width="%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.