Python面试题--第78道题目--如何在jinja2模板中使用if指令进行条件控制--2022年05月03日

本文介绍了Jinja2模板语言的基础语法,包括变量、控制语句和注释的使用,并通过Flask框架展示了如何调用模板。示例中展示了if和for语句的用法,以及如何根据变量的值渲染不同的内容。最后,给出了一个实际的HTML模板示例,演示了如何根据用户输入和条件展示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、jinja2模板语言:

  • 1、{{ … }}:装载一个变量,模板渲染的时候,会使用传进来的同名参数这个变量代表的值替换掉。
  • 2、{% … %}:装载一个控制语句,每个控制语句末尾都需要对应的end控制语句,控制变量包在控制语句和end控制语句之间。
  • 3、{# … #}:装载一个注释,模板渲染的时候会忽视这中间的值。

1、if语句:

{% if newlist %}
    {{newlist}}
{{ elif list1}}
    {{list1}}
{% else %}
    {{list2}}
{% endif %}

2、for语句:

{% for i in list1 %}<br>
    {{i}}
{% endfor %}

二、实例代码演示:

1、调用模板:

from flask import *
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('if1.txt', user = 'bill', intValue = 77, list = [1, 2, 3], dict = {'a': 'b'}, value=None)

"""
列表或字典,None或空,被认为是Flase,否则是True。
"""
    
if __name__=='__main__':
    app.run()

2、模板内容if.txt文件:

<html>
    <head>
        <meta charset='UTF-8'>
        <title>条件控制</title>
    </head>	
    <body>
        {% if user %}
            hello, {{user}}!
        {% else %}
            hello Stranger!
        {% endif %}
	<p>
        {% if not intValue %}
	        intValue的值为0
        {% elif (intValue > 10) and (intValue < 20) %}
	        intValue的值在10和20之间	
	    {% elif intValue > 100 %}
	        intValue的值大于100
	    {% else %}
	        intValue为其他值
	    {% endif %}

	    {% if list %}
	        {% for i in list %}			
                <h1>列表:{{i}}</h1>
	        {% endfor %}
	    {% endif %}
    </body>
</html>

执行结果如下图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值