Dj-Gravatar is a Python package to display avatars using Gravatar on a website developed using Django Framework.
Installation
Windows OS
In the terminal/PowerShell, type
python -m pip install dj-gravatar
If you do not have pip
, then download the package from here, unzip it and keep it in your Django project's root directory (as an app).
Linux/MacOS
In the terminal, type
sudo pip3 install dj-gravatar
If you are in a virtual environment, type
pip install dj-gravatar
If you do not have pip
, then download the package from here, unzip it and keep it in your Django project's root directory (as an app).
Usage
Suppose the directory structure of your project is like this.
Django_Project
│ db.sqlite3
│ manage.py
│
├───pages
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ └───templates
│ │ base.html
│ │
│ └───pages
│ about.html
│ index.html
│
└───Django_Project
asgi.py
settings.py
urls.py
wsgi.py
__init__.py
In Django_Project/settings.py
,
...
INSTALLED_APPS = [
...
'dj_gravatar'
...
]
...
In the Django Template (.html
file) where you want to show the gravatar,
{% load gravatar %}
...
<img src="{% gravatar_url 'email@mail.com' 200 %}" alt="profile-pic">
...
The above code outputs like this:
<img src="http://www.gravatar.com/avatar/267f3587edc9b64d8e80ee7eca8abbcb?s=200&d=" alt="profile-pic">
<img src="http://www.gravatar.com/avatar/[hash]?s=200&d=" alt="profile-pic">
The argument s=200
represents the size of the image (size=200px
). Default size is 80px.
You can also use the following snippet to achieve the same as above:
{% load gravatar %}
...
{% gravatar 'email@mail' 200 "alt='profile-pic'" %}
...
You can use any HTML attribute instead of alt
, like style
. But only use one optional attribute at a time, Otherwise you will get TemplateSyntaxError
.
If you want to use https://.../
instead of the default http://.../
, then add the following setting in your settings.py
file.
GRAVATAR_SECURE = True
If any email address has no matching Gravatar image, then, a default image is shown. There are the following types of default images:
- 404: do not load any image if none is associated with the email hash, instead return an HTTP 404 (File Not Found) response
- mp: (mystery-person) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)
- identicon: a geometric pattern based on an email hash
- monsterid: a generated 'monster' with different colors, faces, etc
- wavatar: generated faces with differing features and backgrounds
- retro: awesome generated, 8-bit arcade-style pixelated faces
- robohash: a generated robot with different colors, faces, etc
- blank: a transparent PNG image (border added to HTML below for demonstration purposes)
You can see here how each type of default image looks like.
To show a particular default image out of the above, add the following setting to your settings.py
file.
GRAVATAR_DEFAULT_URL = 'identicon'
Contribute
Contributions are welcome. If you spot any bug(s), have a feature request, or anything else, don't hesitate to do a Pull Request, or opening an issue from here.