Flask02-Template

## 基础使用

    $ 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 %}
原文地址:https://www.cnblogs.com/mlsec/p/8595275.html