传递参数
def render_template(template_name_or_list, **context):
render_template
可以以关键字参数形式传递参数
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/show')
def index():
name = '小明'
return render_template('show.html', name=name)
if __name__ == '__main__':
app.run()
传递列表,字典等
show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<h1>用户信息显示</h1>
<ul>
<li>
<!-- 遍历 -->
{% for name in names %}
{{ name }}
{% endfor %}
</li>
<li>
<!-- 访问属性 -->
{{ girl.name }}
</li>
</ul>
</div>
</body>
</html>
app.py
from flask import Flask, render_template
app = Flask(__name__)
class Girl:
def __init__(self, name, addr):
self.name = name
self.gender = '女'
self.addr = addr
def __str__(self):
return self.name
@app.route('/show')
def index():
names = ['小明', '小王'] # 列表
dict1 = {'gift': '大手镯', 'gift2': '鲜花'} # dict
# 创建对象
girl = Girl('小张')
return render_template('show.html', names=names, girl=girl)
if __name__ == '__main__':
app.run()
- 列表 :
{{ list.0 }}
同{{ list[0] }}
- 字典 :
{{ dict.key }}
同{{ dict.get() }}
- 对象 :
{{ girl.name }}
同{{ 对象.属性 }}
控制
- 需求 : 判断名字长度大于3的以红色显示, 否则正常显示
show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.a{
color: red;
}
</style>
</head>
<body>
<div>
<h1>用户信息显示</h1>
<ul>
<!-- for循环 -->
{% for name in names %}
<!-- if判断 -->
{% if name|length >= 3 %}
<li class="a">{{ name }}</li>
{% else %}
<li>{{ name }}</li>
{% endif %}
{% endfor %}
</ul>
</div>
</body>
</html>
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/show')
def index():
names = ['小明明', '小王王', '小花']
return render_template('show.html', names=names)
if __name__ == '__main__':
app.run()