python测试开发django-174.模板中include传递参数
前言
模板标签语法 {% include %}
,该标签允许在(模板中)包含其它的模板的内容。
在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重复。
include 使用
如下这一段如果在多个地方会用到
<form action="" method="post" id="query_form">
<div class="form-group">
<label for="Email1">邮箱地址</label>
<input type="text" class="form-control" id="Email1" name="email" placeholder="Email">
</div>
<div class="form-group">
<label for="Password1">密码</label>
<input type="password" class="form-control" id="Password1" name="password" placeholder="Password">
</div>
<input type="button" id="save" class="btn btn-info" value="提交">
</form>
于是可以使用模板标签语法 {% include %}
<body>
{% include 'form.html' %}
</body>
templates目录可以新建一个includes目录,专门放需要导入的代码段,层级结构如下
<body>
{% include 'includes/form.html' %}
</body>
加载的模板名还可以在 view 层中定义, 下面的例子包含了以变量 template_name 的值为名称的模板内容:
{% include template_name %}
include with 使用
一个网页多次引入同一个子模版,子模板中有些是变量,可以用include with
传递变量
如下form,我们希望id是可变的,每次引入传不同的id值 {{ form_id }}
<form action="" method="post" id="{{ form_id }}">
<div class="form-group">
<label for="Email1">邮箱地址</label>
<input type="text" class="form-control" id="Email1" name="email" placeholder="Email">
</div>
<div class="form-group">
<label for="Password1">密码</label>
<input type="password" class="form-control" id="Password1" name="password" placeholder="Password">
</div>
<input type="button" id="save" class="btn btn-info" value="提交">
</form>
with给变量赋值
<body>
{% include 'includes/form.html' with form_id='login_form' %}
</body>
传递多个变量
<form action="" method="{{ method }}" id="{{ form_id }}">
......
</form>
多个变量用空格隔开
<body>
{% include 'includes/form.html' with form_id='login_form' method='post' %}
</body>
默认情况下子模版可以访问父模板的所有变量,在 Django 中还可以通过使用 only 选项来阻止这个默认行为
{% include 'includes/form.html' with form_id='login_form' method='post' only %}
with 标签
另外 Django 还提供了单独的 with 标签来修改或者指定变量的值。
可以单独使用,也可以搭配 include 标签使用。使用方法如下:
<!-- 使用 with 标签指定变量 -->
{% with form_id='login_form' method='post' %}
{% include 'includes/form.html' %}
{% endwith %}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具