这个库才是真的牛逼,轻松搞定各种头像生成,Flask Avatars 了解一下

题图:Photo by Erik Mclean on Unsplash

原谅我这个标题党,内容是纯正干货,就是希望你们能打开学习了解一下。

二十次幂网站的用户注册功能并没有要求上传头像,所有人使用的是一个默认头像。

这几天花把这块进行了优化,基于email的哈希值每个人都有唯一的头像了。使用 Flask-Avatars 提供的功能。


发现这个库非常强大,集成了很多功能在里面,各种各样的头像生成方案,有Identicon、 monsterid、Robohash 甚至是社交平台的头像,另外还支持裁减,这篇文章就来详细具体介绍一下。

安装

$ pip install flask-avatars

初始化

from flask import Flask
from flask_avatars import Avatars
app = Flask(__name__)

avatars = Avatars(app)

生成 Gravatar 头像

Gravatar是 Globally Recognized Avatar的缩写,是 gravatar 网站推出的一项服务,意为“全球通用头像”。GitHub、Stack Overflow、V2EX 等平台使用它作为用户默认的头像。


from flask import render_template
...

@app.route("/")
def hello():
    import hashlib
    avatar_hash = hashlib.md5("lzjun567@qq".lower().encode('utf-8')).hexdigest()
    avatar_hash = avatars.gravatar(avatar_hash, default="wavatar")
    return render_template("index.html", avatar_hash=avatar_hash)

if __name__ == '__main__':
    app.run(port=8000)

在index.html模板中可以直接引用 avatars 实例

<html lang="en">
<body>
<img src="{{ avatars.gravatar(avatar_hash) }}">
</body>
</html>

这个头像的链接是来自于Gravatar网站,每个emai对应l唯一一个头像。

生成默认头像

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

生成Robohash头像

Robohash 头像是一种随机的机器人头像,可以直接使用 avatars.robohash() 生成 URL

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

生成社交媒体头像

如果你在某些社交平台有自己的账号,那么只要指定自己的用户名可以拿到头像了。我们找一个在Twitter有账号的人试一下,例如:Fenng老师

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

支持的平台包括Twiiter,Facebook,还有 Instagram。

以上头像资源都保存在第三方平台,如果你想自己生成头像,并将它保存在本地,那么你可以使用 Identicon 类

哈希头像生成器

Identicon 基于用户信息的哈希值生成图像,通常使用用户登录时的邮箱地址作为输入值,并作为生成新建用户时的初始化头像用于保护用户隐私。

from flask_avatars import Identicon

@app.route("/")
def hello():
    avatar = Identicon()
    filenames = avatar.generate(text="lzjun")
    return render_template("index.html", filenames=filenames)

if __name__ == '__main__':
    app.config['AVATARS_SAVE_PATH'] = "./static/"
    app.run(port=8000)

index.thml

{% for file in filenames %}
<img src="{{ url_for('static', filename=file)}}">
{% endfor %}

最后生成的图像效果:

另外,Flask Avatar 还支持裁剪。类似这样的效果

有没有觉得很强大,同意的点个“在看”

推荐阅读:

王垠受邀面试阿里P9,被P10面跪后网上怒发文,惨打325的P10赵海平回应了!

2019年终盘点:来自 Facebook 内部的 Python 学习知识图谱,太全了!

牛X,试用了下GitHub上22万Star的第一抢票神器,3秒钟抢到!


关注“Python之禅“,学地道的Python技术

好文和朋友一起看~ 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值