当前位置:   article > 正文

Django - 模板层 - 模板的导入和继承 、静态文件的使用_作为框架导入是什么意思

作为框架导入是什么意思

目录

一、模板的导入

1、组件页面:作为一个组件,被导入{% include  '模板名字'%}进母板页面。

2、母版内使用导入的组件: {% include '组件.html' %}

二、模板的继承{% block 自定义盒子名 %}{% endblock %}

1、母版内定义盒子(作为框架结构)

2、继承页面 {% extends '母版页面名.html' %}

三、静态文件的使用

1、静态文件的创建

2、模板文件内使用静态文件夹内文件

1- 通过相对路径(不灵活,写死路径)

2- 通过static 标签函数:{% load static %}加载路径 + {% static "文件真实路径进行拼接"%}

3- get_static_prefix标签:{% load static %} 加载路径 +  {% get_static_prefix %}文件夹/文件 拼接路径


一、模板的导入

目的:将页面的结构组件化,可根据一个母板增加页面的灵活性。提高代码的复用性和开发效率。

1、组件页面:作为一个组件,被导入{% include  '模板名字'%}进母板页面。

  1. <!-- 组件页面的编写 component.html-->
  2. <div>
  3. <div class="panel panel-info">
  4. <div class="panel-heading">这是一个组件</div>
  5. <div class="panel-body">
  6. 组件内容:1111111
  7. </div>
  8. </div>
  9. <div class="panel panel-danger">
  10. <div class="panel-heading">
  11. <h3 class="panel-title">组件部分2</h3>
  12. </div>
  13. <div class="panel-body">
  14. 组件部分
  15. </div>
  16. </div>
  17. </div>

2、母版内使用导入的组件: {% include '组件.html' %}

  1. <!-- 将组件导入母板页面:{% include '组件名.html'%} -->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <link rel="stylesheet" href="/static/utils/bootstrap-3.3.7-dist/css/bootstrap.css">
  7. <title>Title</title>
  8. <style>
  9. </style>
  10. </head>
  11. <body>
  12. <div class="head"></div>
  13. <div class="container-fluid content">
  14. <div class="row">
  15. <div class="col-md-3">
  16. <!-- 导入组件内容在母版结构中 -->
  17. {% include 'component.html' %}
  18. </div>
  19. <div class="col-md-9">
  20. </div>
  21. </div>
  22. </div>
  23. </body>
  24. </html>

二、模板的继承{% block 自定义盒子名 %}{% endblock %}

目的:在母版内留下自定义盒子,可以在继承的子组件中进行填充覆盖,增加的页面的灵活性。

1、母版内定义盒子(作为框架结构)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <link rel="stylesheet" href="/static/utils/bootstrap-3.3.7-dist/css/bootstrap.css">
  6. <title>Title</title>
  7. <style>
  8. .head {
  9. height: 60px;
  10. background: #1b6d85;
  11. }
  12. .content{
  13. margin-top: 10px;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="head"></div>
  19. <div class="container-fluid content">
  20. <div class="row">
  21. <div class="col-md-9">
  22. <div class="right_top" style="height: 70px;background: pink">
  23. {% block content_top %}
  24. {% endblock %}
  25. </div>
  26. <div class="right_top" style="height: 70px;background: #3e8f3e">
  27. </div>
  28. {% block content %}
  29. 我是母版的内容
  30. {% endblock %}
  31. </div>
  32. </div>
  33. </div>
  34. </body>
  35. </html>

2、继承页面 {% extends '母版页面名.html' %}

  1. {% extends 'base.html' %}
  2. {% block content %}
  3. <p>这是自定义填充的区域</p>
  4. <p>这是自定义填充的区域</p>
  5. <p>这是自定义填充的区域</p>
  6. <p>这是自定义填充的区域</p>
  7. {{ block.super }}
  8. <p>这是自定义填充的区域</p>
  9. <p>这是自定义填充的区域</p>
  10. <p>这是自定义填充的区域</p>
  11. <p>这是自定义填充的区域</p>
  12. {{ block.super }}
  13. {% endblock content%}
  14. {% block content_top %}
  15. 我是模版一内容頭部
  16. {% endblock content_top%}

总结:

  • {% extends %} 标签必须是模板中的第一个标签。
  • 母版结构中尽可能多的设置{% block %} 标签(盒子)。
  • 子模板不必全部重写母版中的block
  • 为了更好的可读性,你也可以给你的 {% endblock %} 标签一个 名字 
    1. {% block content %}
    2. ...
    3. {% endblock content %}  
  • 不能在一个模版中定义多个相同名字的 block 标签

三、静态文件的使用

1、静态文件的创建

2、模板文件内使用静态文件夹内文件

 

总结:

  • 使用标签函数,当修改settings内static路径时,会自动进行修改
  • 使用标签函数,必须使用{% load static %}加载路径

​​​​​​​

1- 通过相对路径(不灵活,写死路径)

<link rel="stylesheet" href="/static/css/mycss.css">

2- 通过static 标签函数:{% load static %}加载路径 + {% static "文件真实路径进行拼接"%}

  1. <!-- 引用img文件-->
  2. {% load static %}
  3. <img src="{% static "img/hi.jpg" %}" alt="Hi!" />
  4. <!-- 引用js文件-->
  5. {% load static %}
  6. <script src="{% static "mytest.js" %}"></script>
  7. <!-- 引用重命名引用文件 在他出再次调用-->
  8. {% load static %}
  9. {% static "img/hi.jpg" as myphoto %}
  10. <img src="{{ myphoto }}"></img>

3- get_static_prefix标签:{% load static %} 加载路径 +  {% get_static_prefix %}文件夹/文件 拼接路径

  1. {% load static %}
  2. <img src="{% get_static_prefix %}img/hi.jpg" alt="Hi!" />
  3. <!-- 重命名get_static_prefix函数进行调用 -->
  4. {% load static %}
  5. {% get_static_prefix as STATIC_PREFIX %}
  6. <img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
  7. <img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/769215
推荐阅读
相关标签
  

闽ICP备14008679号