当前位置:网站首页 > 更多 > 编程开发 > 正文

[Python] Django模板结构优化所需要的三个Tag:include,extends,block

作者:CC下载站 日期:2020-06-14 00:00:00 浏览:54 分类:编程开发

利用include引入模板文件

一般的网页都有头部(header),底部(footer),然后这些部分通常是不会变的,所以在Django中可以利用include引入模板文件,如我的头部文件是:

header.html

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Hellowww.lanol.cn</title>
</head>

底部文件是:

footer.html

<divclass="footer">
<p>这是Lan的小站的底部文件</p>
</div>

然后首页文件只需要这样写就可以了:

index.html

{%include'header.html'%}
<divclass="content">
<h1>这是首页文件</h1>
</div>
{%include'footer.html'%}

默认include标签包含模版,会自动的使用主模版中的上下文,也即可以自动的使用主模版中的变量。如果想传入一些其他的参数,那么可以使用with语句。示例代码如下:

#header.html
<p>Website:{{username}}</p>
#main.html
{%include"header.html"withWebsite='www.lanol.cn'%}

利用extends继承模板文件

extends可以直接引用整个文件

比如base.html:

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是base模板</h1>
</body>
<divclass="footer">
<p>这是Lan的小站的底部文件</p>
</div>
</html>

然后index.html只需要一句就可以了:

{%extends'base.html'%}

需要注意的是:extends标签必须放在模版的第一行。
子模板中的代码必须放在block中,否则将不会被渲染。

利用block修改继承的目标文件

如果我们需要修改base.html的内容,我们需要在base.html中加一个block,代码中的content为自己起的名字,可以根据需求改

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是base模板</h1>
</body>
<divclass="footer">
{%blockcontent%}

{%endblock%}
</div>
</html>

然后在index中就可以修改了。

{%extends'base.html'%}
{%blockcontent%}
<h1>这是block插入</h1>
{%endblock%}

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯