欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django模板結構優(yōu)化的方法

 更新時間:2019年02月28日 08:19:29   作者:小短腿電工  
這篇文章主要介紹了django模板結構優(yōu)化的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

模版結構優(yōu)化

引入模版

有時候一些代碼是在許多模版中都用到的。如果我們每次都重復的去拷貝代碼那肯定不符合項目的規(guī)范。一般我們可以把這些重復性的代碼抽取出來,就類似于Python中的函數(shù)一樣,以后想要使用這些代碼的時候,就通過 include 包含進來。這個標簽就是 include 。示例代碼如下:

# header.html
<p>我是header</p>

# footer.html
<p>我是footer</p>

# main.html
{% include 'header.html' %}
<p>我是main內容</p>
{% include 'footer.html' %}

include 標簽尋找路徑的方式。也是跟 render 渲染模板的函數(shù)是一樣的。

默認 include 標簽包含模版,會自動的使用主模版中的上下文,也即可以自動的使用主模版中的變量。如果想傳入一些其他的參數(shù),那么可以使用 with 語句。示例代碼如下:

# header.html
<p>用戶名:{{ username }}</p>

# main.html
{% include "header.html" with username='huangyong' %}

模板繼承:

在前端頁面開發(fā)中。有些代碼是需要重復使用的。這種情況可以使用 include 標簽來實現(xiàn)。也可以使用另外一個比較強大的方式來實現(xiàn),那就是模版繼承。模版繼承類似于 Python 中的類,在父類中可以先定義好一些變量和方法,然后在子類中實現(xiàn)。模版繼承也可以在父模版中先定義好一些子模版需要用到的代碼,然后子模版直接繼承就可以了。并且因為子模版肯定有自己的不同代碼,因此可以在父模版中定義一個block接口,然后子模版再去實現(xiàn)。以下是父模版的代碼:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
  <link rel="stylesheet" href="{% static 'style.css' %}" rel="external nofollow" />
  <title>{% block title %}我的站點{% endblock %}</title>
</head>

<body>
  <div id="sidebar">
    {% block sidebar %}
    <ul>
      <li><a href="/" rel="external nofollow" >首頁</a></li>
      <li><a href="/blog/" rel="external nofollow" >博客</a></li>
    </ul>
    {% endblock %}
  </div>
  <div id="content">
    {% block content %}{% endblock %}
  </div>
</body>
</html>

這個模版,我們取名叫做 base.html ,定義好一個簡單的 html 骨架,然后定義好兩個 block 接口,讓子模版來根據(jù)具體需求來實現(xiàn)。子模板然后通過 extends 標簽來實現(xiàn),示例代碼如下:

{% extends "base.html" %}

{% block title %}博客列表{% endblock %}

{% block content %}
  {% for entry in blog_entries %}
    <h2>{{ entry.title }}</h2>
    <p>{{ entry.body }}</p>
  {% endfor %}
{% endblock %}

需要注意的是:extends標簽必須放在模版的第一行。

子模板中的代碼必須放在block中,否則將不會被渲染。

如果在某個 block 中需要使用父模版的內容,那么可以使用 {{block.super}} 來繼承。比如上例, {%block title%} ,如果想要使用父模版的 title ,那么可以在子模版的 title block 中使用 {{ block.super }} 來實現(xiàn)。

在定義 block 的時候,除了在 block 開始的地方定義這個 block 的名字,還可以在 block 結束的時候定義名字。比如 {% block title %}{% endblock title %} 。這在大型模版中顯得尤其有用,能讓你快速的看到 block 包含在哪里。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Django零基礎入門之自定義過濾器及模板中的使用

    Django零基礎入門之自定義過濾器及模板中的使用

    這篇文章主要介紹了Django零基礎入門之自定義過濾器及模板中的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 如何使用Python創(chuàng)建json文件

    如何使用Python創(chuàng)建json文件

    眾所周知JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,這篇文章主要給大家介紹了關于如何使用Python創(chuàng)建json文件的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 使用Python制作自動推送微信消息提醒的備忘錄功能

    使用Python制作自動推送微信消息提醒的備忘錄功能

    這篇文章主要介紹了使用Python制作自動推送微信消息提醒的備忘錄功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • 利用python實現(xiàn)漢字轉拼音的2種方法

    利用python實現(xiàn)漢字轉拼音的2種方法

    這篇文章主要給大家介紹了關于如何利用python實現(xiàn)漢字轉拼音的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Pycharm取消py腳本中SQL識別的方法

    Pycharm取消py腳本中SQL識別的方法

    今天小編就為大家分享一篇Pycharm取消py腳本中SQL識別的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 用python生成與調用cntk模型代碼演示方法

    用python生成與調用cntk模型代碼演示方法

    今天小編就為大家分享一篇用python生成與調用cntk模型代碼演示方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 從PySpark中的字符串獲取列表方法講解

    從PySpark中的字符串獲取列表方法講解

    在本篇內容里小編給大家分享的是一篇關于從PySpark中的字符串獲取列表方法講解及相關實例,有需要的朋友們跟著學習下。
    2021-12-12
  • 代碼分析Python地圖坐標轉換

    代碼分析Python地圖坐標轉換

    這篇文章主要介紹了Python地圖坐標轉換的相關知識點以及分享了相關的代碼實例,對此有興趣的朋友學習下。
    2018-02-02
  • 實例詳解Matlab 與 Python 的區(qū)別

    實例詳解Matlab 與 Python 的區(qū)別

    Python是一種面向對象的解釋型計算機程序設計語言。這篇文章主要介紹了Matlab 與 Python 的區(qū)別及優(yōu)勢,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • 使用Python和scikit-learn創(chuàng)建混淆矩陣的示例詳解

    使用Python和scikit-learn創(chuàng)建混淆矩陣的示例詳解

    這篇文章主要介紹了使用Python和scikit-learn創(chuàng)建混淆矩陣的示例詳解,該示例包括生成數(shù)據(jù)集、為數(shù)據(jù)集選擇合適的機器學習模型、構建、配置和訓練它,最后解釋結果,即混淆矩陣,需要的朋友可以參考下
    2022-06-06

最新評論