## 基础使用 $ vim app/templates/index.html > <html> > <head> > <title>{{title}} - microblog</title> > </head> > <body> > <h1>Hello, {{user.nickname}}!</h1> > </body> > </html> $ vim app/views.py > from flask import render_template > from app import app > > @app.route('/') > @app.route('/index') > def index(): > user = { 'nickname': 'Miguel' } # fake user > return render_template("index.html", > title = 'Home', > user = user) ## 模板中控制语句( if-else for ) $ vim app/templates/index.html > <html> > <head> > {% if title %} > <title>{{title}} - microblog</title> > {% else %} > <title>microblog</title> > {% endif %} > </head> > <body> > <h1>Hi, {{user.nickname}}!</h1> > {% for post in posts %} > <p>{{post.author.nickname}} says: <b>{{post.body}}</b></p> > {% endfor %} > </body> > </html> $ vim app/views.py > def index(): > user = { 'nickname': 'Miguel' } # fake user > posts = [ # fake array of posts > { > 'author': { 'nickname': 'John' }, > 'body': 'Beautiful day in Portland!' > }, > { > 'author': { 'nickname': 'Susan' }, > 'body': 'The Avengers movie was so cool!' > } > ] > return render_template("index.html", > title = 'Home', > user = user, > posts = posts) ## 模板继承 $ vim app/templates/base.html <html> <head> {% if title %} <title>{{title}} - microblog</title> {% else %} <title>microblog</title> {% endif %} </head> <body> <div>Microblog: <a href="/index">Home</a></div> <hr> {% block content %}{% endblock %} </body> </html> $ vim app/templates/index.html {% extends "base.html" %} {% block content %} <h1>Hi, {{user.nickname}}!</h1> {% for post in posts %} <div><p>{{post.author.nickname}} says: <b>{{post.body}}</b></p></div> {% endfor %} {% endblock %}