{% tag %}
不过有些标签需要开始标签和结束标签,也有的标签不需要,下面我们对这两种类型的常见标签进行讲解。
{% if 条件表达式1 %}
......
{% elif 条件表达式2 %}
......
{% elif 条件表达式3 %}
......
{% else %}
......
{% endif %}
注意:模板标签内部的两边空格不要省略。
那 if 标签具体又是如何使用的呢,下面我们通过一个简单的例子来看一下:#在views.py 中添加如下代码 def test_if(request): dic={'x':2**4} return render(request,'test_if.html',dic)在 templates 目录中创建 test_if.html 文件 ,并在body中添加以下代码
{% if x > 0 %} <h2>{{ x }}是大于0的</h2> {% elif x == 0%} <h3>{{ x }}是等于0的</h3> {%elif x < 0 %} <h4>{{ x }}是小于0的</h4> {% endif %}最后在 urls.py 文件中配置路由如下所示:
path('test_if/',views.test_if)
最终结果可想而知,通过访问 127.0.0.1:8000/test_if 会得到如下显示:
图1:模板标签 if 运行效果图
提示:elif 和 else 这两个标签是可选的,elif 标签可以不止一个,但是 else 标签只有一个,同时也可以都不出现在 if 标签中,只使用 if 与 endif。
如果当判断的条件太多时,为了避免过多的连接操作符的出现,同样可以考虑使用嵌套的 if 标签,格式如下所示:{% if 条件表达式1 %} {% if 条件表达式 %} ...... {% elif 条件表达式2 %} ...... {% else %} ...... {% endif %} {% endif %}
from django.template import Template,Context#调用template、以及上下文处理器方法 def Hello_MyWeb(request): #调用template()方法生成模板 t=Template(""" {% if web.name == 'C语言中文网' %} {% if printable %} <h1>Hello C语言中文网</h1> {% else %} <h2>欢迎您下次访问,C语言中文网</h2> {% endif %} {% endif %} """) c= Context({'web':{'name':'C语言中文网'}, 'printable' : True }) #Context必须是字典类型的对象,用来给模板传递数据 html=t.render(c) return HttpResponse(html)然后我们在 urls.py 文件中为 hello_MyWeb() 函数配置路由映射关系,如下所示:
path('Hello_MyWeb/',views.Hello_MyWeb)
最终我们会得到如下所示的输出:Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有