1.前言
上一篇讲解了如何将变量从python程序渲染到网页。
本篇来讲下如何根据后端的数据,对网页内容进行条件渲染和循环渲染。
2. 条件渲染
条件渲染的意思是,根据后端变量的情况,来选择性的渲染一部分内容。
后端类:
class User:
def __init__(self, name, sex):
self.name = name
self.sex = sex
后端返回数据:
@app.route('/user')
def user():
myUser = User("张三", "male")
return render_template('user.html', myUser=myUser)
前端根据性别值,条件渲染,当返回数据的sex为male时,则渲染if包裹的部分,否则渲染else包裹的部分。
<p>
{% if myUser.sex=='male' %}
男
{% else %}
女
{% endif %}
</p>
3. 循环渲染
循环渲染的意思,是渲染一组元素,将每个元素循环展开。
后端返回列表:
@app.route('/user')
def user():
myUser = User("张三", "male")
otherUser = User("李四", "female")
userList = [myUser, otherUser]
return render_template('user.html', myUser=myUser, userList=userList)
前端循环显示:
<ul>
{% for user in userList %}
<li>名字:{{user.name}}--性别:{{user.sex}}</li>
{% endfor %}
</ul>
所以效果如下:
4. 小结
条件渲染和循环渲染,其实还是python模板引擎,根据前端{%%}的模板语法,将一些变量的值渲染到指定位置的方式。
因为是在后端对模板内容进行处理,所以可以做的非常灵活,Flask的实现足够简单优雅,我喜欢。