Skip to main content

Flask-Avatars

All avatar generators in one place.

Installation

$ pip install flask-avatars

Initialization

The extension needs to be initialized in the usual way before it can be used:

from flask_avatars import Avatars

app = Flask(__name__)
avatars = Avatars(app)

Avatars

Flask-Avatars provide a avatars object in template context, you can use it to get avatar URL.

Gravatar

You can use avatars.gravatar() to get an avatar URL provided by Gravatar, pass the email hash:

<img src="{{ avatars.gravatar(email_hash) }}">

You can get email hash like this:

import hashlib

avatar_hash = hashlib.md5(my_email.lower().encode('utf-8')).hexdigest()

Robohash

Robohash provide random robot avatar, you can use avatars.robohash() to get the avatar URL, pass a random text:

<img src="{{ avatars.robohash(some_text) }}">

Avatars.io

Avatars.io let you use your social media's avatar (Twitter, Facebook or Instagram), you can use avatars.social_media() to get the avatar URL, pass your username on target social media:

<img src="{{ avatars.social_media(username) }}">

Default to use Twitter, use platform to change it:

<img src="{{ avatars.social_media(username, platform='facebook') }}">

Default avatar

Flask-Avatars provide a default avatar with three size, use avatars.default() to get the URL:

<img src="{{ avatars.default() }}">

You can use size to change size (one of s, m and l), for example:

<img src="{{ avatars.default(size='s') }}">

Identicon generate

Flask-Avatars provide a Identicon class to generate identicon avatar, most of the code was based on randomavatar. First, you need set configuration variable AVATARS_SAVE_PATH to tell Flask-Avatars the path to save generated avatars. Generally speaking, we will generate avavar when the user record was created, so the best place to generate avatar is in user database model class:

class User(db.Model):
    avatar_s = db.Column(db.String(64))
    avatar_m = db.Column(db.String(64))
    avatar_l = db.Column(db.String(64))

    def __init__():
        generate_avatar()

    def generate_avatar(self):
        avatar = Identicon()
        filenames = avatar.generate(text=self.username)
        self.avatar_s = filenames[0]
        self.avatar_m = filenames[1]
        self.avatar_l = filenames[2]
        db.session.commit()

Then create a view to serve avatar image like this:

from flask import send_form_directory, current_app

@app.route('/avatars/<path:filename>')
def get_avatar(filename):
    return send_from_directory(current_app.config['AVATARS_SAVE_PATH'], filename)

Configuration

The configuration options available were listed below:

Configuration Default Value Description
AVATARS_GRAVATAR_DEFAULT identicon Gravatar default avatar type
AVATARS_SAVE_PATH None The path where avatar save
AVATARS_SIZE_TUPLE (30, 60, 150) The avatar size tuple in a format of (small, medium, large), used when generate identicon avatar
AVATARS_IDENTICON_COLS 7 The cols of identicon avatar block
AVATARS_IDENTICON_ROWS 7 The ros of identicon avatar block
AVATARS_IDENTICON_BG None The back ground color of identicaon avatar, pass RGB tuple (for example (125, 125, 125)). Default (None) to use random color

TODO

  • Fix English grammar error at everywhere :(
  • Documentation
  • Tests
  • Example applications

ChangeLog

0.1.0

Release date: 2018/6/19

Initialize release.

License

This project is licensed under the MIT License (see the LICENSE file for details).

Metadata

Release files for Flask-Avatars 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-Avatars 0.1.0
File Size Uploaded Provenance
Flask-Avatars-0.1.0.tar.gz 262.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for Flask-Avatars 0.1.0
File Interpreter ABI Platform
Flask_Avatars-0.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 544.3 kB

Release files / Flask-Avatars-0.1.0.tar.gz

Download URL Flask-Avatars-0.1.0.tar.gz
Size 262.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9d891b9b68aeee56976963194e276c171a3e2fa69af9ad1e0978aac3ceff55b5
BLAKE2b-256 checksum
How to use checksums
c39fc09484e01641ef1d1a13cf150fbd0890901ccd31a4411c363db4a1e4703e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Flask_Avatars-0.1.0-py2.py3-none-any.whl

Download URL Flask_Avatars-0.1.0-py2.py3-none-any.whl
Size 281.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
47d4eb9ca3044132b3e97a03f92498284b9f6e462c38a99635ab88a00430fef5
BLAKE2b-256 checksum
How to use checksums
dbaef1f2850e2ad8dfc93693049019532188660098d7e67666971911d51bfe28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for Flask-Avatars 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page