下面我将为您详细介绍Python的Flask框架中的Jinja2模板引擎学习教程。
什么是Jinja2模板引擎
Jinja2是Python语言中一种基于模板的高性能、健壮、可扩展的模板引擎。它利用简单的语法糖和强大的功能,使得在Web开发中使用模板变得简单、易用并且高效。
如何使用Jinja2模板引擎
- 安装Flask框架
Jinja2是Flask框架中默认的模板引擎,您需要先安装Flask框架。可以使用以下命令来安装Flask:
pip install Flask
- 创建Flask应用程序
您需要先创建一个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()
- 创建Jinja2模板
您需要创建一个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>
- 渲染Jinja2模板
在Flask应用程序中使用render_template()函数渲染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()
在这个示例中,渲染Jinja2模板的语句为:
return render_template('template.html', name=name, items=items)
其中,'template.html'表示要渲染的Jinja2模板的文件名,后面的name和items表示要传递给模板的参数。
- 运行Flask应用程序
您需要运行Flask应用程序,打开一个浏览器窗口并输入URL,就可以看到模板被渲染出来了。示例代码如下:
http://127.0.0.1:5000/template/Bob
在浏览器中将看到以下信息:
Hello Bob!
* apple
* banana
* orange
- 在模板中使用控制语句
您可以在Jinja2模板中使用控制语句,如if、for等。以下是一个示例:
<!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>
在这个示例中,如果items列表不为空,渲染出来的模板将包含一个ul元素。否则,将不包含ul元素。
示例说明
下面给出两个使用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模板引擎学习教程的详细攻略,希望可以对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python的Flask框架中的Jinja2模板引擎学习教程 - Python技术站