一:模版的继承
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
login.html
- {#login 页面全部清空#}
-
- {#login继承home主页面#}
- {% extends 'home.html' %}
-
- {#子页面的css代码 #}
- {% block css %}
- <style>
- h1 {
- color: red;
- }
- </style>
- {% endblock %}
-
- {#block 指定选择主页面划分的(区域) 可以进行修改 #}
- {% block content %}
- <h1 class="text-center">登录页面</h1>
- <form action="">
- <p>username: <input type="text" class="form-control"></p>
- <p>password: <input type="text" class="form-control"></p>
- <input type="submit" class="btn btn-success">
- </form>
- {% endblock %}
-
- {# 子页面的js代码 #}
- {% block js %}
- <script>
- alert('登录页面')
- </script>
- {% endblock %}
reg.html
- {#reg页面全部清空#}
-
- {#reg继承home主页面#}
- {% extends 'home.html' %}
-
- {#子页面的css代码 #}
- {% block css %}
- <style>
- h1 {
- color: seagreen;
- }
- </style>
- {% endblock %}
-
- {#block 指定选择主页面划分的(区域) 可以进行修改 #}
- {% block content %}
- <h1 class="text-center">注册页面</h1>
- <form action="">
- <p>username: <input type="text" class="form-control"></p>
- <p>password: <input type="text" class="form-control"></p>
- <input type="submit" class="btn btn-danger">
- </form>
- {% endblock %}
-
- {# 子页面的js代码 #}
- {% block js %}
- <script>
- alert('注册')
- </script>
- {% endblock %}

2.总结模板继承
一般情况下 模版的页面上划定的区域越多 那么该模版的扩展性就越高
但是如果太多 那还不如自己直接写
三:模版的导入
1.模板导入
将页面的某一个局部当成模块的形式
哪个地方需要就可以直接导入使用即可
2.模板导入格式
- {% include '导入html文件名' %}
3.模板导入使用
sss.html
login.html子页面
- {% endblock %}
-
- {#block 指定选择主页面划分的(区域) 可以进行修改 #}
- {% block content %}
- <h1 class="text-center">登录页面</h1>
- <form action="">
- <p>username: <input type="text" class="form-control"></p>
- <p>password: <input type="text" class="form-control"></p>
- <input type="submit" class="btn btn-success">
- </form>
-
- <p>模板的导入</p>
- {% include 'sss.html' %}
-
- {% endblock %}
4.使用结果

总结
到此这篇关于Django模板继承与模板导入的文章就介绍到这了,更多相关Django模板继承与模板导入内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!