Search code examples
pythonjinja2flask

Passing HTML to template using Flask/Jinja2


I'm building an admin for Flask and SQLAlchemy, and I want to pass the HTML for the different inputs to my view using render_template. The templating framework seems to escape the HTML automatically, so all <"'> characters are converted to HTML entities. How can I disable that so that the HTML renders correctly?


Solution

  • To turn off autoescaping when rendering a value, use the |safe filter.

    {{ something|safe }}
    

    Only do this on data you trust, since rendering untrusted data without escaping is a cross-site scripting vulnerability.