python测试开发django-174.模板中include传递参数


前言

模板标签语法 {% include %} ,该标签允许在(模板中)包含其它的模板的内容。
在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重复。

include 使用

如下这一段如果在多个地方会用到

于是可以使用模板标签语法 {% include %}



{% include 'form.html' %}


templates目录可以新建一个includes目录,专门放需要导入的代码段,层级结构如下



{% include 'includes/form.html' %}


加载的模板名还可以在 view 层中定义, 下面的例子包含了以变量 template_name 的值为名称的模板内容:

{% include template_name %}

include with 使用

一个网页多次引入同一个子模版,子模板中有些是变量,可以用include with传递变量
如下form,我们希望id是可变的,每次引入传不同的id值 {{ form_id }}

with给变量赋值



{% include 'includes/form.html' with form_id='login_form' %}


传递多个变量

......

多个变量用空格隔开



{% include 'includes/form.html' with form_id='login_form'  method='post'  %}


默认情况下子模版可以访问父模板的所有变量,在 Django 中还可以通过使用 only 选项来阻止这个默认行为

{% include 'includes/form.html' with form_id='login_form'  method='post' only %}

with 标签

另外 Django 还提供了单独的 with 标签来修改或者指定变量的值。
可以单独使用,也可以搭配 include 标签使用。使用方法如下:



{% with form_id='login_form'  method='post' %}
    {% include 'includes/form.html' %}
{% endwith %}