Flask使用Jinja 2模板引擎来分离数据逻辑和展示层。

    我们将模板文件按如下路径放置:

    1. Apps folder
    2. /app.py
    3. templates
    4. |-/index.html

    使用模板时,视图函数应当返回render_template()的调用结果。

    例如下面的代码片段渲染模板index.html,并将渲染结果作为视图函数的返回值

    1. from flask import Flask, render_template
    2. app = Flask(__name__)
    3. @app.route('/hello/')
    4. @app.route('/hello/<name>')
    5. def hello():
    6. return render_template('index.html', name=name)
    7. if __name__ == '__main__':
    8. app.run(debug = True)

    在上面的代码中,模板文件index.html依赖于变量name,其内容如下:

    1. <html>
    2. <body>
    3. {% if name %}
    4. <h2>Hello {{ name }}.</h2>
    5. {% else %}
    6. <h2>Hello.</h2>
    7. {% endif %}
    8. </body>
    9. </html>

    模板文件的语法扩充了HTML,因此可以使用变量和逻辑。

    在浏览器中访问http://127.0.0.1:8080/hello/alex:

    image.png