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 StrictUndefined to the Environment constructor: Environment(loader=..., autoescape=..., undefined=StrictUndefined)var is defined ): stackoverflow.com/questions/3842690/… - this works even if the variable is undefined and strict undefined in place.