ITPub博客

首页 > 应用开发 > Java > include、extends用法和区别

include、extends用法和区别

原创 Java 作者:Afanda001 时间:2019-12-10 10:30:15 0 删除 编辑

extends

extends指继承父模板的框架,将里面的部分内容换成子模版需要的东西即可。
语法:{% extends ‘public/base.html’ %}
extends后面可加相对路径,也可使用变量
如:
page1.html:


{
% extends 
'public/base.html' 
%
}
{
% block title 
%
}page1
{
% endblock 
%
}
{
% block content 
%
}
    
<div 
id
=
"test"
>
        
<a
>这里是page1的content
<
/a
>
        
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
        
<
input v
-model
=
"message"
/
>
        
<p
>
{
[message
]
}
<
/p
>
    
<
/div
>
{
% endblock 
%
}
{
% block script 
%
}
    
<script src
=
"/static/public/vue.js"
>
<
/script
>
    
<script src
=
"/static/main/page1.js"
>
<
/script
>
{
% endblock 
%
}

base.html:


<!DOCTYPE html
>
<html lang
=
"en"
>
<head
>
    
<meta charset
=
"UTF-8"
>
    
<title
>
{
% block title 
%
}base
{
% endblock 
%
}
    
<
/title
>
<
/head
>
<body
>
{
% block header 
%
}
    
<div 
id
=
"app1"
>
        
<a
>模板头部内容
<
/a
>
        
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
    
<
/div
>
{
% endblock 
%
}
{
% block content 
%
}
{
% endblock 
%
}
{
% block body 
%
}
    
<a
>模板主体内容
<
/a
>
{
% endblock 
%
}
{
% block footer 
%
}
    
<a
>模板底部内容
<
/a
>
{
% endblock 
%
}
{
% block script 
%
}
{
% endblock 
%
}
{
% block style 
%
}
{
% endblock 
%
}
<a
>这里的数据是固定不会被改变的
<
/a
>
<
/body
>
<
/html
>

浏览器中的page1.html:


<!DOCTYPE html
>
<html lang
=
"en"
>
<head
>
    
<meta charset
=
"UTF-8"
>
    
<title
>page1    
<
/title
>
<
/head
>
<body
>
    
<div 
id
=
"app1"
>
        
<a
>模板头部内容
<
/a
>
        
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
    
<
/div
>
    
<div 
id
=
"test"
>
        
<a
>这里是page1的content
<
/a
>
        
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
        
<
input v
-model
=
"message"
/
>
        
<p
>
{
[message
]
}
<
/p
>
    
<
/div
>
    
<a
>模板主体内容
<
/a
>
    
<a
>模板底部内容
<
/a
>
    
<a
>这里的数据是固定不会被改变的
<
/a
>
    
<script src
=
"/static/public/vue.js"
>
<
/script
>
    
<script src
=
"/static/main/page1.js"
>
<
/script
>
<
/body
>
<
/html
>

注意extends一定要写在最上方。
父模板base.html中定义的block块有几个子模版中就有几个,父模板中block名字自取,子模版可以重写父模板中的block,名字相同即可,但是子模版不能在block块之外写代码,父模板block之外的代码子模版只能得到不能修改。
子模版也可以在父模板的block中添加内容,如下:


{
% block footer 
%
}
    
{
{ block
.
super 
}
}
    这里是子模版添加的内容
{
% endblock 
%
}

使用{{block.super}}告诉浏览器这一块是增加的内容,不是替换。

include

在Django的模板系统中,可以使用include这一语法:{% include ‘public/base2.html’ %}
include是指将后面引入的html文件中的所有代码都放到被引入文件的对应位置
include后面可加相对路径,也可使用变量
如:
page2.html:


<!doctype html
>
<html lang
=
"en"
>
<head
>
    
<meta charset
=
"UTF-8"
>
    
<title
>page2
<
/title
>
<
/head
>
<body
>
{
% include 
'public/base2.html' 
%
}
<
/body
>
<
/html
>

public/base2.html:


<div 
id
=
"app1"
>
    
<a
>模板内容
<
/a
>
    
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
    
<a
>message
<
/a
>
<
/div
>

导入后浏览器中的page2.html:


<!doctype html
>
<html lang
=
"en"
>
<head
>
    
<meta charset
=
"UTF-8"
>
    
<title
>page2
<
/title
>
<
/head
>
<body
>
<div 
id
=
"app1"
>
    
<a
>模板内容
<
/a
>
    
<
input 
type
=
"button" value
=
"点我弹窗" @click
=
"click1"
/
>
    
<a
>message
<
/a
>
<
/div
>
<
/body
>
<
/html
>

可以看到base2.html被导入到了page2.html文件中,相当于代码复用。

总结

extends主要用于同一主题的网页,网页之间的框架大体相同,include主要用于多个html中有相同的代码。
二者是可以一起使用的,这么看extends和include用处刚好是相反的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69957037/viewspace-2667661/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2019-12-10

  • 博文量
    4
  • 访问量
    3733