I want to use Gravatar to display users' profile pictures in my flask application. I followed the instructions in the documentation https://flask-gravatar.readthedocs.io/en/latest/
However, when running my application I get this error message:
application_iter = app(environ, start_response)
File "/home/ubuntu/finalproject/application.py", line 21, in <module>
gravatar = Gravatar(app,
NameError: name 'Gravatar' is not defined
This is the beginning of the main file:
import os
import time
import datetime
from flask import Flask, flash, redirect, render_template, request, session
from flask_session import Session
from tempfile import mkdtemp
from werkzeug.exceptions import default_exceptions, HTTPException, InternalServerError
from werkzeug.security import check_password_hash, generate_password_hash
# Configure application
app = Flask(__name__)
#initialize gravatar
gravatar = Gravatar(app,
size=80,
rating='g',
default='retro',
force_default=False,
force_lower=False,
use_ssl=False,
base_url=None)
# Ensure templates are auto-reloaded
app.config["TEMPLATES_AUTO_RELOAD"] = True
At the moment I just want to test how it works. So my test.html just contains: {{ '[email protected]' | gravatar }} and is called with GET and render_template.
Can someone tell me what I have to do, that the variable "Gravatar" defined in init.py is recognized?
Folder structure: Structure in CS50 IDE
CodePudding user response:
The example provided in the Gravatar documentation is bad. If you do this:
gravatar = Gravatar(app,
size=80,
rating='g',
default='retro',
force_default=False,
force_lower=False,
use_ssl=False,
base_url=None)
... without Gravatar
being defined somewhere in your file, it will fail. In this case I think you need:
from flask_gravatar import Gravatar
gravatar = Gravatar(...)