Flask
Templates with Jinja2
render_template() renders an HTML file from the
templates/ folder using Jinja2.
Example: rendering a list of posts
from flask import render_template
@app.route("/posts")
def posts():
posts = ["First post", "Second post"]
return render_template("posts.html", posts=posts)
# templates/posts.html:
# <ul>
# {% for post in posts %}
# <li>{{ post }}</li>
# {% endfor %}
# </ul>
Renders a bulleted list: First post, Second post
Jinja2 uses the same {{ variable }} and
{% for %}/{% if %} tag style Django templates
use — no coincidence, since Jinja2 was directly inspired by Django's
template language. If you've read the Django tutorial's Templates lesson,
this syntax should already feel familiar.
from flask import render_template
@app.route("/posts")
def posts():
posts = ["First post", "Second post"]
return render_template("posts.html", posts=posts)
# templates/posts.html
# <ul>
# {% for post in posts %}
# <li>{{ post }}</li>
# {% endfor %}
# </ul>
Renders a bulleted list containing "First post" and "Second post".