By default Flask renders empty values for undefined attributes in Jinja templates. I want to raise an error instead. How can I change this behavior in Flask?
Hello, {{ name }}!
render_template('index.html')
Hello, !
Change the Flask app's Jinja env's undefined
class to be StrictUndefined
.
from flask import Flask
from jinja2 import StrictUndefined
app = Flask(__name__)
app.jinja_env.undefined = StrictUndefined
If a template tries to use a variable that is undefined (except to test if it's undefined) it will raise an error.
Hello, {{ name }}!
render_template('index.html')
jinja2.exceptions.UndefinedError: 'name' is undefined