Django模板的继承与模板的导入


目录
  • 一:模版的继承
      • 1.什么是模板继承?
      • 2.使用继承流程原理
      • 3.模板继承语法
  • 二:模板的继承使用
      • 1.案例需求
      • 2.总结模板继承
  • 三:模版的导入
      • 1.模板导入
      • 2.模板导入格式
      • 3.模板导入使用
      • 4.使用结果

一:模版的继承

1.什么是模板继承?
你需要事先在你想要使用的主页面上划定区域做好标记,之后在子页面继承的时候你就可以使用在主页面划定的区域,也就意味着,如果你不划定任何区域,那么你子页面将无法修改主页面内容
2.使用继承流程原理
  • 1.先在你想要继承的主页面上通过bolck划定你将来可能要改的区域,并做好标记
  • 2.在子页面上继承extends,利用block自动提示选取你想要修改的内容区域标记名称
  • 3.在子页面extends中写你要修改主页面标记区的代码
  • 4.然后就可以让子页面的修改内容渲染到主页面的划定区域上

你们有没有见过一些网站
这些网站页面整体都大差不差 只是某一些局部在做变化

3.模板继承语法
1.继承
{% extends '模版页面名' %}

2.局部修改
	# 1.你需要先去模版页面中划定可以被修改的区域
  	{% block '名字' %}
    	模版内容(666)
    {% endblock %}
  # 2.子页面中即成了模版页面之后 就可以根据名字修改
  	{% block '名字' %}
    	子版内容
      
      子版页面吃了可以自己写自己的之外 还可以继续使用模版的内容
      {{ block.super }}  666
      {{ block.super }}  666
      {{ block.super }}  666
      {{ block.super }}  666
    {% endblock %}
4.一般情况下模版页面上应该至少有三块可以被修改的区域
  1.css区域
  2.html区域
  3.js区域
    
每一个子页面就都可以有自己独有的css代码 html代码 js代码 
互相之间 互不干扰 
# 子页面css
{% block css %}

{% endblock %}


{% block content %}

{% endblock %}

# 子页面js  
{% block js %}

{% endblock %}
   

二:模板的继承使用

1.案例需求
  • 1.实现用户点击登录右侧局部出现登录页面,点击注册右侧出现注册页面

  • urls.py

    # 模板的继承
    url(r'^home/', views.home),
    # 创建login路由
    url(r'^login/', views.login),
    # 创建reg路由
    url(r'^reg/', views.reg),
  • views.py
def home(request):
    return render(request, 'home.html')



def login(request):
    return render(request, 'login.html')


def reg(request):
    return render(request, 'reg.html')
  • home.html



    
    Title
    
    
    
    
    
    
{% block css %}

{% endblock %}


{#导航条#}

{#左右不留白#}
{#row 划分12份区域#}
{# 左侧分三份#}
{#侧边栏 #}
{# 面板#}

Panel title

{# 划分区域 不影响区域展示,仅仅是标记 区域名#} {% block content %} {# 巨幕#}

Hello, world!

...

Learn more

{% endblock %}
{% block js %} {% endblock %}
  • login.html

{#login 页面全部清空#}

{#login继承home主页面#}
{% extends 'home.html' %}

{#子页面的css代码 #}
{% block css %}
    
{% endblock %}

{#block 指定选择主页面划分的(区域) 可以进行修改 #}
{% block content %}
    

登录页面

username:

password:

{% endblock %} {# 子页面的js代码 #} {% block js %} {% endblock %}
  • reg.html

{#reg页面全部清空#}

{#reg继承home主页面#}
{% extends 'home.html' %}

{#子页面的css代码 #}
{% block css %}
    
{% endblock %}

{#block 指定选择主页面划分的(区域) 可以进行修改 #}
{% block content %}
    

注册页面

username:

password:

{% endblock %} {# 子页面的js代码 #} {% block js %} {% endblock %}

2.总结模板继承
一般情况下 模版的页面上划定的区域越多 那么该模版的扩展性就越高
但是如果太多 那还不如自己直接写

三:模版的导入

1.模板导入
将页面的某一个局部当成模块的形式
哪个地方需要就可以直接导入使用即可
2.模板导入格式
{% include '导入html文件名' %}
3.模板导入使用
  • sss.html

我是sss.html页面

  • login.html子页面
{% endblock %}

{#block 指定选择主页面划分的(区域) 可以进行修改 #}
{% block content %}
    

登录页面

username:

password:

模板的导入

{% include 'sss.html' %} {% endblock %}
4.使用结果