安企CMS#其他辅助标签#

一些常用会用到的内置标签。


模板的嵌套引用 include

往往制作模板的时候,我们会将一些公共部分,比如header、footer、aside等部分,抽离出来独立存放,不需要在每一个页面都重复编写,只需要在每一个页面引入它们即可。这个时候,我们可以使用include标签。


include可以将一个拆分出来的代码片段(fragment)嵌入到完整的文档中。使用形式是

如果需要引入的模板不存在的话,它会报错,如我我们不知道引入的模板是否存在,则需要增加if_exists判断。



这样如果header.html模板存在的话,则会引入,即使不存在,也不会报错,只是被忽略掉了。

默认情况下,include引入的模板,它会继承当前模板的所有变量,如果想给include引入的模板增加另外的变量,可以使用with来增加。如:



这样就给include引入的模板定义了title变量,当前模板的其他变量它同样也可以继续使用了。

如果需要声明多个变量给include引入的模板使用,可以连续使用key=value的形式增加,它们之间使用空格隔开,如:



如果只想让include引入的模板使用指定的几个变量,而不是当前模板的所有变量,可以使用only来做限制:


然后在header.html中使用:


<!DOCTYPE html>
<html lang=“en”>
<head>

<meta charset="UTF-8">
<title>}</title>
<meta name="keywords" content="}">

</head>


模板代码片段宏函数macro

iris.Django模板引擎可以很简便的定义一些宏函数代码片段。宏代码片段相当于一个函数,它只能调用从参数传入的变量。类似于使用include。不过macro有限定的作用域。如文章我们给文章列表的文章item使用macro


定义一个宏函数

<li class=“item”>

<a href="/archive/}" class="link">
    <h5 class="title">}</h5>
</a>

</li>

使用定义的宏函数

}

同时宏函数还可以保存到独立的文件中,然后通过import来嵌套进来。当一个文件中包含多个宏函数,可以使用,将隔开连续引入多个宏函数。还可以使用as来设置别名:

保存宏函数到 archive.helper



<li class=“item”>

<a href="/archive/}" class="link">
    <h5 class="title">}</h5>
</a>

</li>

<li class=“item”>

<a href="/archive/}" class="link">
    <h5 class="title">}</h5>
</a>

</li>

在index.html中引入:


用import引入:

调用:

}
}
}


模板的继承 extends

模板的继承有点像ppt中的母版一样,我们定义好一个骨架,将一个页面都写好,大部分不用变动,需要变动的部分使用block标签包裹起来:


<title>base</title>  <!-- 如果扩写了就是扩写的,不扩写就还是用base -->

这样定义的好处是,可以在继承它的模板中,重写这个block,不重写就按母版来显示。
比如我们定义了一个base.html


<!DOCTYPE html>
<html lang=“en”>
<head>

<meta charset="UTF-8">

    <title>base</title>  <!-- 如果扩写了就是扩写的,不扩写就还是用base -->

<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
      integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<style>
    * {
        margin: 0;
        padding: 0;
    }

    .header {
        width: 100%;
        height: 50px;
        background-color: #369;
    }
</style>

</head> <body>

<div class=“header”></div>

<div class=“container”>

<div class="row">
    <div class="col-md-3">

    </div>
    <div class="col-md-9">

            <h4>content</h4>

    </div>
</div>

</div> </body> </html>

然后在index.html中继承这个base.html


<title>index</title>




<div class="col-md-9">
    <h3>index</h3>
    <p>index content</p>
</div>

这样就是使用base.html作为母版,并在index.html 中重写了title、content两个部分。

注意:如果你在模版中使用 标签,它必须是模版中的第一个标签。其他的任何情况下,模版继承都将无法工作。

在使用继承的情况下,尽可能将可能会变动的数据,都包裹在block中,因为block即使在后续的页面不重写,也不影响模板的解析,而需要重写的时候就更方便。

同样地,如果后续写到某一块,发现多个页面都需要使用到,那么这时候,就把添加到base.html中去,让它成为母版的一部分。


变量的输出

Django 模板中遍历复杂数据结构的关键是句点字符.,变量输出边界定义是双大括号。有一个对象是people,它有Name、Gender、Level属性,在模板中输出就是:


<ul>
  <li>网站:}</li>
  <li>名字:}</li>
  <li>性别:}</li>
  <li>等级:}</li>
</ul>


在模板中使用struct结构体内置方法比如在archive列表中,archive的结构体中,定义了内置函数func (archive *Archive) GetThumb(),那么在模板中,是可以直接调用的。如:


<li class=“item”>

<a href="/archive/}" class="link">
    <img src="}" alt="}" />
    <h5 class="title">}</h5>
</a>

</li>

模板可以直接使用}来调用内置的archive.GetThumb()方法。


在模板中输出当前时间

now标签提供在模板中输出当前时间。now格式化时间的参数遵循golang的时间格式化规则。如果增加fake 参数,则会输出一个特定的加时间代替当前时间。如:



lorem 随机生成拉丁文样本数据

显示随机的“ lorem ipsum”拉丁文本。 这对于在模板中提供样本数据很有用。也就是占位内容。在开发模板没有真实数据的时候,使用这个标签可以快速填充足够多的随机数据。如:


—–






模板的注释

iris.Django的注释我们使用大括号+#来实现注释:

单行注释使用 ,多行注释使用 这里注释很多行

示例:

空单行注释



单行注释



用有效标签填充单行注释


#}

用无效标签填充单行注释


 #}

用无效语法填充单行注释


wow #}

空块注释



填充文本单行块注释


filled block comment

空多行块注释


阻止带有其他标签的注释



  }
  do stuff

阻止其中带有无效标签的注释


使用无效语法阻止注释


注释之间的常规标签,以确保其在词法分析器中不会中断


after if All done


上一篇: 没有了

下一篇: 安企CMS#更多过滤器#

推荐主页
美股开户 投资美国 分析方法 CTA策略 期货基础知识 基金基础知识 股票术语 交易策略 金融指数 金融市场 交易所 股票基础 投资基础 多多招商团长 多多团长 多多买菜 请假条模板 猪粪烘干机 小型鸡粪烘干机 上海到吴忠物流专线 上海到中卫物流专线 上海到固原物流专线 上海到银川物流专线 上海到宁夏物流专线 知乎seo 拼多多团长 自学做网站 学做网站 华为 OpenAI 马斯克 三星 Go语言 Golang Golang语言 小红书带货笔记 小红书带货 wordpress教程 WordPress建站服务器 WordPress建站教程 WordPress建站服务 WordPress建站公司 小红书笔记带货 抖音客服 抖音视频 抖音软件 快手商家 快手极速版 快手网页版 抖音蓝v 抖音创作者服务中心 抖音创作者服务平台 抖音创作中心 抖音下载安装 58同城 抖音订单 抖音网页创作者中心 抖音网页版 番茄小说 抖音短视频 抖音创作者中心 抖音创作服务平台 抖音官网 抖音极速版 抖音直播 抖音下载 短视频IP孵化厂家 短视频IP孵化 快手电商 短视频IP 小红书推广 微信支付 宝塔软件 宝塔 wordpress模板 linux 云服务器 wordpress安装 阿里云建站 阿里云服务器 阿里云播放器 云虚拟主机 阿里云虚拟主机 虚拟主机 阿里云 bootstrap主题 bootstrap blog 浏览器 谷歌ads 腾讯云cdn cdn 腾讯云 ChatGPT 华为云 小红书规范 小红书规则 小红书新规 京东 小红书电商