MENU
什么是Gravatar

Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球通用头像”。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。

生成用户头像的前提是该用户的邮箱在Gravatar官网注册并上传过头像。

第一步:安装第三方库
pip install libgravatar

简单介绍一下如何使用这个库,参考自官方文档

import libgravatar
g = Gravatar('lne128gene980@163.com')
image_url = g.get_image()
print(image_url)
# output http://www.gravatar.com/avatar/e9ad200c54b6bebbe39309bbb929f220

通过上面几行代码即可生成用户邮箱对应头像的链接,是不是很简单!

第二步:创建模板标签

在django中,开发者可以自定义模板标签。

我们将创建一个模板标签,{{ email|gravatar }}

前端只需传入用户的邮箱,即可生成头像链接。

在app中创建文件夹 templatetags, 文件夹下面创建文件 email_tags.py__init__.py

编写模板标签

# email_tags.py
from django import template
from django.utils.safestring import mark_safe

import libgravatar

register = template.Library()

# return an image tag with the gravatar
# TEMPLATE USE:  {{ email|gravatar }}
@register.filter
def gravatar(email):
    g = libgravatar.Gravatar(email)
    return g.get_image()
第三步:在前端使用模板标签

首先,在用到模板标签的页面载入模板标签,之后即可使用。

<!-- 必要 -->
{% load email_tags %}
<img src="{{ email|gravatar }}" alt="" width="50" height="50">

至此,我们就实现了在django中根据用户的邮箱生成头像。

参考文章