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


    

综合运用列表和字典的模板文件

{% for book in books %} {% endfor %}
书名 作者 价格
{{ book.name }} {{ book.author }} {{ book.price }}
#encoding: utf-8
from flask import Flask,render_template

app = 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)

你可能感兴趣的:(python-Flask(jinja2)语法:判断与循环)