include和set语句

include语句:

include语句可以把一个模板引入到另外一个模板中,类似于把一个模板的代码copy到另外一个模板的指定位置,看以下例子:

  1. {% include 'header.html' %}
  2. Body
  3. {% include 'footer.html' %}

赋值(set)语句:

有时候我们想在在模板中添加变量,这时候赋值语句(set)就派上用场了,先看以下例子:

  1. {% set name='xiaotuo' %}

那么以后就可以使用name来代替xiaotuo这个值了,同时,也可以给他赋值为列表和元组:

  1. {% set navigation = [('index.html', 'Index'), ('about.html', 'About')] %}

赋值语句创建的变量在其之后都是有效的,如果不想让一个变量污染全局环境,可以使用with语句来创建一个内部的作用域,将set语句放在其中,这样创建的变量只在with代码块中才有效,看以下示例:

  1. {% with %}
  2. {% set foo = 42 %}
  3. {{ foo }} foo is 42 here
  4. {% endwith %}

也可以在with的后面直接添加变量,比如以上的写法可以修改成这样:

  1. {% with foo = 42 %}
  2. {{ foo }}
  3. {% endwith %}

这两种方式都是等价的,一旦超出with代码块,就不能再使用foo这个变量了。