当前位置:   article > 正文

Django网页模板的继承include与复用extends

django前端套用现成模板

Django使用网页模板的方式分为两种, 一是建立代码块, 在新的页面导入代码块, 关键词为include 二是建立模板,新的页面在模板基础上扩充, 关键词为extends

导入代码块 include

  • 导入的代码块相当于一个完整的组件, 可以包含html标签, css样式, js语法
  • 如果你想在网页上乱入一块广告, include是非常乐意效劳的
3203841-b3b136dca62d28b1.gif

定义一个代码块

  1. <style>
  2. #ad{
  3. background-color: #FCF6E5;
  4. border-radius: 10px;
  5. margin: 0 auto;
  6. text-align: center;
  7. padding: 30px;
  8. font-size: 20px;
  9. position: relative;
  10. box-sizing: border-box;
  11. }
  12. #close {
  13. font-size: 10px;
  14. background-color: #AB3319;
  15. position: absolute;
  16. top: 10px;
  17. right: 10px;
  18. cursor:pointer;
  19. color: #ffffff;
  20. padding: 6px;
  21. }
  22. </style>
  23. <div id='ad'>
  24. 大扎好,我系轱天乐,我四渣渣辉,<br>探挽懒月,介四里没有挽过的船新版本,<br>挤需体验三番钟,里造会干我一样,爱象节款游戏<br>
  25. (用港普来阅读以上内容)
  26. <span id="close">关闭X</span>
  27. </div>
  28. <script>
  29. document.getElementById("close").onclick = function(){
  30. document.getElementById("ad").style.display = "none";
  31. }
  32. </script>

导入一个代码块

  1. {% include './_ad.html'%}
  2. <style>
  3. body {
  4. margin: 0;
  5. padding: 0;
  6. }
  7. .content {
  8. height: 300px;
  9. background-color: #FAFAFA;
  10. overflow: auto;
  11. border: 2px solid #FCF6E5;
  12. padding-left: 500px;
  13. box-sizing: border-box;
  14. }
  15. .title {
  16. color: #413F43;
  17. font-size: 30px;
  18. color: #AB3319;
  19. }
  20. </style>
  21. <div class="content">
  22. <div class="title"><b>Lemon</b> | 电视剧《非自然死亡》主题曲</div>
  23. <br>夢ならばどれほどよかったでしょう
  24. <br>如果这一切都是梦境该有多好
  25. <br>未だにあなたのことを夢にみる
  26. <br>至今仍能与你在梦中相遇
  27. <br>忘れた物を取りに帰るように
  28. <br>如同取回遗忘之物一般
  29. <br>古びた思い出の埃を払う
  30. <br>细细拂去将回忆覆盖的尘埃
  31. <br>戻らない幸せがあることを
  32. <br>最终是你让我懂得了
  33. <br>最後にあなたが教えてくれた
  34. <br>这世间亦有无法挽回的幸福
  35. <br>言えずに隠してた昏い過去も
  36. <br>那些未对他人提及过的黑暗往事
  37. <br>あなたがいなきゃ永遠に昏いまま
  38. <br>如果不曾有你的话 它们将永远沉睡在黑暗中
  39. <br>きっともうこれ以上 傷つくことなど
  40. <br>我知道这世上一定没有
  41. <br>ありはしないとわかっている
  42. <br>比这更令人难过的事情了
  43. <br>あの日の悲しみさえ
  44. <br>那日的悲伤
  45. <br>あの日の苦しみさえ
  46. <br>与那日的痛苦
  47. <br>そのすべてを愛してた あなたとともに
  48. <br>连同深爱着这一切的你
  49. <br>胸に残り離れない
  50. <br>化作了深深烙印在我心中的
  51. <br>苦いレモンの匂い
  52. <br>苦涩柠檬的香气
  53. <br>雨が降り止むまでは帰れない
  54. <br>在雨过天晴前都无法归去
  55. <br>今でもあなたはわたしの光
  56. <br>时至今日 你仍是我的光芒
  57. <br>暗闇であなたの背をなぞった
  58. <br>在黑暗中追寻着你的身影
  59. <br>その輪郭を鮮明に覚えている
  60. <br>那轮廓至今仍鲜明地刻印于心
  61. <br>受け止めきれないものと出会うたび
  62. <br>每当遇到无法承受的苦痛时
  63. <br>溢れてやまないのは涙だけ
  64. <br>总是不禁泪如泉涌
  65. <br>何をしていたの
  66. <br>你都经历过什么
  67. <br>何を見ていたの
  68. <br>又目睹过什么呢
  69. <br>わたしの知らない横顔で
  70. <br>脸上浮现着我不曾见过的神情
  71. <br>どこかであなたが今
  72. <br>如果你正在什么地方
  73. <br>わたしと同じ様な
  74. <br>与我一样
  75. <br>涙にくれ 淋しさの中にいるなら
  76. <br>わたしのことなどどうか 忘れてください
  77. <br>就请你将我的一切全部遗忘吧
  78. <br>そんなことを心から願うほどに
  79. <br>这是我发自内深处唯一的祈愿
  80. <br>今でもあなたはわたしの光
  81. <br>时至今日 你仍是我的光芒
  82. <br>自分が思うより 恋をしていたあなたに
  83. <br>我深深地恋慕着你 甚至超出了我自己的想象
  84. <br>あれから思うように 息ができない
  85. <br>自此每当想起你 都如同窒息般痛苦
  86. <br>あんなに側にいたのにまるで嘘みたい
  87. <br>你曾亲密伴我身旁 如今却如烟云般消散
  88. <br>とても忘れられないそれだけが確か
  89. <br>唯一能确定的是 我永远都不会将你遗忘
  90. <br>あの日の悲しみさえ
  91. <br>那日的悲伤
  92. <br>あの日の苦しみさえ
  93. <br>与那日的痛苦
  94. <br>その全てを愛してたあなたと共に
  95. <br>连同深爱着这一切的你
  96. <br>胸に残り離れない
  97. <br>化作了深深烙印在我心中的
  98. <br>苦いレモンの匂い
  99. <br>苦涩柠檬的香气
  100. <br>雨が降り止むまでは帰れない
  101. <br>在雨过天晴前都无法归去
  102. <br>切り分けた果実の片方の様に
  103. <br>如同被切开的半个柠檬一般
  104. <br>今でもあなたはわたしの光
  105. <br>时至今日 你仍是我的光芒
  106. </div>

扩充模板定义网页 extends

3203841-69d44c281af35d0a.png

定义一个模板

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>将进酒</title>
  6. </head>
  7. <style>
  8. body {
  9. margin: 0;
  10. padding-left: 100px;
  11. padding-right: 100px;
  12. }
  13. .poem-title {
  14. color: #AB3319;
  15. font-size: 50px;
  16. padding-top: 50px;
  17. }
  18. .poem-author {
  19. font-size: 30px;
  20. color: #5EA1F3;
  21. padding-top: 20px;
  22. font-weight: bold;
  23. }
  24. .poem-content {
  25. color: #444444;
  26. font-size: 20px;
  27. line-height: 36px;
  28. padding-top: 50px;
  29. padding-bottom: 50px;
  30. }
  31. .message-board {
  32. color: #62868D;
  33. }
  34. </style>
  35. <body>
  36. <div class="poem-title">
  37. {% block poem_title %}诗歌-标题{% endblock poem_title %}
  38. </div>
  39. <div class="poem-author">
  40. {% block poem_author%}
  41. 诗歌-作者
  42. {% endblock poem_author %}
  43. </div>
  44. <div class="poem-content">
  45. {% block poem_content%}
  46. 诗歌-内容
  47. {% endblock poem_content %}
  48. </div>
  49. <div class="message-board">
  50. {% block message_board %}
  51. <div style="height: 300px; line-height: 300px; text-align: center; color: #BDBDBD; border: 1px solid #BDBDBD; border-radius: 6px;">留言区-暂时为空</div>
  52. {% endblock %}
  53. </div>
  54. </body>
  55. </html>

导入模板填入内容生成网页

  1. {% extends "./_tem.html" %}
  2. {% block poem_title %}将进酒{% endblock poem_title %}
  3. {% block poem_author %}
  4. 李白
  5. {% endblock poem_author %}
  6. {% block poem_content %}
  7. 君不见,黄河之水天上来,奔流到海不复回。<br>
  8. 君不见,高堂明镜悲白发,朝如青丝暮成雪!<br>
  9. 人生得意须尽欢,莫使金樽空对月。<br>
  10. 天生我材必有用,千金散尽还复来。<br>
  11. 烹羊宰牛且为乐,会须一饮三百杯。<br>
  12. 岑夫子,丹丘生,将进酒,杯莫停。<br>
  13. 与君歌一曲,请君为我倾耳听。<br>
  14. 钟鼓馔玉不足贵,但愿长醉不复醒。<br>
  15. 古来圣贤皆寂寞,惟有饮者留其名。<br>
  16. 陈王昔时宴平乐,斗酒十千恣欢谑。<br>
  17. 主人何为言少钱,径须沽取对君酌。<br>
  18. 五花马、千金裘,呼儿将出换美酒,与尔同销万古愁!<br>
  19. {% endblock poem_content %}

小结:

  • django适合承担比较大的项目, 如果一个项目中需要生成大量网页, 那模板继与复用就是不可或缺的,
  • 使用模板的好处有很多, 最基本的好处是能简化代码, 此外, django会根据模板生成完整的静态网页, 这种默认后端渲染的做法,非常利于seo, 提升了网站内容被搜索引擎抓取的概率
  • include和extends可以解决大多数模板继承与复用的问题, 而且二者是支持混用的, 为了将模板代码块与普通的html文件区分开, 推荐的做法是模板文件以下划线开头,如广告的模板文件可以命名为_ad.html
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号