关键词

Python的Flask框架中的Jinja2模板引擎学习教程

下面我将为您详细介绍Python的Flask框架中的Jinja2模板引擎学习教程。

什么是Jinja2模板引擎

Jinja2是Python语言中一种基于模板的高性能、健壮、可扩展的模板引擎。它利用简单的语法糖和强大的功能,使得在Web开发中使用模板变得简单、易用并且高效。

如何使用Jinja2模板引擎

  1. 安装Flask框架
pip install Flask
  1. 创建Flask应用程序
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/hello/<name>')
def hello(name):
    return 'Hello {}!'.format(name)

@app.route('/template/<name>')
def template(name):
    return render_template('template.html', name=name)

if __name__ == '__main__':
    app.run()
  1. 创建Jinja2模板
<!DOCTYPE html>
<html>
<head>
    <title>Jinja2</title>
</head>
<body>
    <h1>Hello {{ name }}!</h1>
    <ul>
        {% for i in items %}
        <li>{{ i }}</li>
        {% endfor %}
    </ul>
</body>
</html>
  1. 渲染Jinja2模板
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/template/<name>')
def template(name):
    items = ['apple', 'banana', 'orange']
    return render_template('template.html', name=name, items=items)

if __name__ == '__main__':
    app.run()
return render_template('template.html', name=name, items=items)
  1. 运行Flask应用程序
http://127.0.0.1:5000/template/Bob
Hello Bob!
    * apple
    * banana
    * orange
  1. 在模板中使用控制语句
<!DOCTYPE html>
<html>
<head>
    <title>Jinja2</title>
</head>
<body>
    <h1>Hello {{ name }}!</h1>
    {% if items %}
    <ul>
        {% for i in items %}
        <li>{{ i }}</li>
        {% endfor %}
    </ul>
    {% endif %}
</body>
</html>

示例说明

下面给出两个使用Jinja2模板引擎的例子:一个是传递一个变量,另一个是传递一个列表。

示例1:传递一个变量

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/hello/<name>')
def hello(name):
    return render_template('hello.html', name=name)

if __name__ == '__main__':
    app.run()
<!DOCTYPE html>
<html>
<head>
    <title>Jinja2</title>
</head>
<body>
    <h1>Hello {{ name }}!</h1>
</body>
</html>

上述示例通过URL传递了一个变量name,这个变量通过render_template()函数传递给了Jinja2模板。在模板中使用{{ name }}来代表这个变量。

示例2:传递一个列表

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/list/<name>')
def list(name):
    items = ['item1', 'item2', 'item3']
    return render_template('list.html', items=items)

if __name__ == '__main__':
    app.run()
<!DOCTYPE html>
<html>
<head>
    <title>Jinja2</title>
</head>
<body>
    {% for item in items %}
    <p>{{ item }}</p>
    {% endfor %}
</body>
</html>

上述示例通过URL传递了一个变量name,然后传递了一个列表items。在模板中使用{% for item in items %}...{% endfor %}来遍历这个列表,并用{{ item }}来代表每个元素。

以上就是Python的Flask框架中的Jinja2模板引擎学习教程的详细攻略,希望可以对您有所帮助。

本文链接:http://task.lmcjl.com/news/15592.html

展开阅读全文