From b2cbdefb7e852d087dfef7c37c2507b486a3193d Mon Sep 17 00:00:00 2001 From: tmeissner Date: Wed, 14 Nov 2018 00:07:44 +0100 Subject: [PATCH] Chapter 10: User avatars (10c) --- app/models.py | 7 ++++++ app/static/styles.css | 7 ++++++ app/templates/base.html | 6 ++++- app/templates/user.html | 53 +++++++++++++++++++++------------------- tests/test_user_model.py | 14 +++++++++++ 5 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 app/static/styles.css diff --git a/app/models.py b/app/models.py index 12c24f1..89079af 100644 --- a/app/models.py +++ b/app/models.py @@ -1,4 +1,5 @@ from datetime import datetime +import hashlib from werkzeug.security import generate_password_hash, check_password_hash from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from itsdangerous import BadSignature @@ -168,6 +169,12 @@ class User(UserMixin, db.Model): db.session.add(self) db.session.commit() + def gravatar(self, size=100, default='identicon', rating='g'): + url = 'https://secure.gravatar.com/avatar' + hash = hashlib.md5(self.email.lower().encode('utf-8')).hexdigest() + return '{url}/{hash}?s={size}&d={default}&r={rating}'.format( + url=url, hash=hash, size=size, default=default, rating=rating) + def __repr__(self): return '' % self.username diff --git a/app/static/styles.css b/app/static/styles.css new file mode 100644 index 0000000..9b1ee80 --- /dev/null +++ b/app/static/styles.css @@ -0,0 +1,7 @@ +.profile-thumbnail { + position: absolute; +} +.profile-header { + min-height: 260px; + margin-left: 280px; +} diff --git a/app/templates/base.html b/app/templates/base.html index a1f6020..560c802 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -6,6 +6,7 @@ {{ super() }} + {% endblock %} {% block navbar %} @@ -31,7 +32,10 @@