python-Flask(jinja2)语法(判断与循环)

逻辑与循环 [TOC]
if 语句
语法:

{% if xxx %} {% else %} {% endif %}

例子:
index - 锐客网 {% if user and user.age > 18 %} {{ user.username }} 注销 {% else %} 登录 注册 {% endif %}

@app.route('//') def index(is_login): if is_login: user = { 'username' : u'站长', 'age' : 22 } return render_template('index.html', user= user) # 已经注册则传进去参数 else: return render_template('index.html') # 没有注册则直接渲染

for循环遍历
字典遍历:语法和python一样,可以使用items()keys()values()iteritems()iterkeys()itervalues()
{% for k,v in user.items() %}{{ k }}:{{ v }}
{% endfor %}

# for遍历字典 @app.route('/') def index(): # 定义一个字典 user = { 'username' : u'站长', 'age' : 22 } return render_template('index.html',user=user)

列表遍历:,语法与python一样
{% for website in websites %}{{ website }}
{% endfor %}

# for遍历列表 @app.route('/') def index(): websites = ['www.baidu.com','www.google.com'] return render_template('index.html',websites=websites)

例子:
index - 锐客网【python-Flask(jinja2)语法(判断与循环)】综合运用列表和字典的模板文件
{% for book in books %} {% endfor %}
书名 作者 价格
{{ book.name }} {{ book.author }} {{ book.price }}

#encoding: utf-8 from flask import Flask,render_templateapp = Flask(__name__)@app.route('/') def index(): books = [ { 'name' : u'西游记', 'author' : u'吴承恩', 'price' : 88 }, { 'name': u'三国演义', 'author': u'罗贯中', 'price': 98 }, { 'name': u'红楼梦', 'author': u'曹雪芹', 'price': 89 }, { 'name': u'水浒传', 'author': u'施耐庵', 'price': 101 } ]return render_template('index.html', books=books)if __name__ == '__main__': app.run(debug=True)

    推荐阅读