Quand vous créer un site web avec Django il peut être intéressant de savoir comment générer une image aléatoire par défaut pour les visiteurs ou membres de votre site (pour le forum, l'espace membre, etc). Dans ce cas vous pouvez créer des "Identicons" comme sur la figure ci-contre qui est une représentation visuelle d'un hash, généralement à partir d'une adresse IP, d'un pseudo, d'une adresse email, ..., permettant d'identifier un utilisateur. Ou alors utiliser un Gravatar qui est un service de centralisation d'avatar créé par Tom Preston-Werner (ce service permet au visiteur de télécharger une seule fois une image et de l'utiliser ensuite comme identifiant sur différents sites). L'avantage avec le site gravatar est qu'il peut aussi être utilisé pour générer des identicons (comme sur la figure ci-contre). Imaginons le cas suivant, vous connaissez l'adresse email d'un membre de votre site. Cet email peut alors ensuite être utilisé pour générer un hash. Si ce hash ne correspond pas à un hash déjà connu sur le site gravatar alors il va retourner une image par défaut:
# import code for encoding urls and generating md5 hashes
import urllib, hashlib
# Set your variables here
email = "someone@somewhere.com"
default = "http://www.example.com/default.jpg"
size = 40
# construct the url
gravatar_url = "http://www.gravatar.com/avatar/" + hashlib.md5(email.lower()).hexdigest() + "?"
gravatar_url += '?'+ urllib.urlencode({'d':default, 's':str(size)})
ici l'adresse email n'est pas associée à un hash connu par le site gravatar et retourne donc une image simple par defaut. Cependant il est possible de demander au site gravatar de générer une image identicon au lieu de l'image simple par défaut. Pour cela il suffit de changer default="identicon" comme dans cet exemple:
>>> import urllib, hashlib
>>> email = "toto@gmail.com"
>>> size = 100
>>> default = "identicon"
>>> gravatar_url = "http://www.gravatar.com/avatar/" + hashlib.md5(email.lower()).hexdigest()
>>> gravatar_url += '?'+ urllib.urlencode({'d':default, 's':str(size)})
>>> gravatar_url
'http://www.gravatar.com/avatar/5a3f2bbc4a48a3b65438890ecb202aba?s=100&d=identicon'
Note: il est aussi possible de générer des images autres que des identicons
voir.
Recherches associées
Liens | Site |
---|---|
Identicon | wikipedia |
Gravatar | wikipedia |
gravatar | gravatar |
How is the default user avatar generated? | stackexchange |
Identicons! | github |