为什么注释Django中的if tag后,条件判断还是存在?

 

    详细问题:Django项目中,为什么将templates下html文件中的if判断注释之后,不管条件是true or false都会显示tag内的内容???

    情景示例,html代码:

{% if show_table %}
    <table>这里是一个table</table>
{% endif %}

   只有当show_table为true时才显示这个表。

  但是,

    现在不需要判断了,不管什么时候都需要显示表格。那你有两种做法:一、将if判断删掉,只保留<table>这里是一个table</table>。这样做完全没问题。二、为了省事只将if判断注释,保留中间一行,如下:

<!--{% if show_table %}-->
    <table>这里是一个table</table>
<!--{% endif %}-->

这个时候你会发现,当show_table为false时table还是没有显示。为什么呢?

这里要考虑下前端html的加载过程,类似于html,js,css那样。我们知道Django项目中的html文件并不是页面显示的HTML,而是先通过后台渲染(先处理Django标签,如:loads,include,if 等),然后再通过页面显示。严格来说,这里是要注意后台渲染和注释的顺序。如果show_table为False,此时经过后台渲染table并没有显示出来,我们注释掉的也只是两行if判断。所以这个if判断的效果还是一直存在的。

所以明白,上面这样注释方式在templates中是不行的。在Django中正确的注释方法如下:

         单行注释:{#             #}

         多行注释:{% comment %}

                           {% endcomment %}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值