django-模板層基礎2

可以玩,但沒必要發表於2018-11-13
1、模板的匯入
    {% include 模板名%}
    首先在你的的專案中,需要很多地方用到同一個元件(相對於頭部,你進行每個頁面的切換,網頁最上面的頭
  部不需要改變),那麼這樣我們可以把那個頭部重新寫在一個模板中,其他每個頁面需要用到話,就直接在模
  板中匯入頭部那個模板{% include `head.html`%}就可以了 2、模板的繼承 上面模板的匯入的用處就是:被匯入的模板運用到某個模板中一部分。 而模板的繼承呢? 就是其他模板基於一個模板(母版),就一部分需要改變,其他不需要變化,那麼就用上模板的基礎了 首先:你需要自己寫一個模板,並在需要隨url改變的內容寫 {% block 名字 %} {% endblock %} #相當於在母版中佔了快區域 然後:你其他模板需要基礎改模板進行修改的話,你必須先要繼承母版 {% extend 母版名%} 寫好了,就在下面寫 {% block 名字 %} 中間就是一系列程式碼塊 {% endblock %} 總結:1、我們用模板的繼承,匯入為的是減少程式碼冗餘 2、母版中可以有多個{% block 名字 %} {% endblock %} 3、你也在母版中的block標籤中寫一些程式碼,為何叫繼承呢?物件導向應該知道吧,我在其他母版中寫
     {% extend 母版名%},也就是繼承了母版,block相當於基類的方法,我在子類寫一個相同的方法,
     最終是實現子類裡的方法。所以你在母版中block寫了程式碼,你子類block也寫了程式碼,母版中block
     的程式碼不會執行。(前提block名是一樣的) 3、靜態檔案操作 靜態檔案的一些知識不說了, 假設:我在模板中多次引用到了靜態檔案的檔案,我的setting裡的STATIC_URL = `/static/`,
     STATIC_URL的值發生了改變,變成了`/static11/`,那麼我模板那些用到靜態檔案的地方,
     肯定是用不了,改的話還要一個一個去改,是不是很麻煩 解決方法:哈哈,這個假設是不是熟悉,對,就是反向解析。我們也可以和解決反向解析一樣的思路 方法一: 在模板中,我們先匯入一個py檔案 {%load static%} #這個是不是我們自定義標籤那裡用到過,
     索引這個static是檔案匯入該檔案之後,我們就可以使用標籤了 {%static `css/my_css.css`%}
     就算不看原始碼,我們也應該知道大致怎麼實現。 他肯定是使用了os.path.join()類似的方法對吧,路徑拼接。 方法二: 和方法一一樣,先匯入static檔案{%load static%} 然後 `{% get_static_prefix %}css/mycss.css `,這就是簡單的字串操作吧, 那麼我們就應該能知道{% get_static_prefix %}這個標籤的返回值應該就是settings
     檔案裡的STATIC_URL,對吧。

 

相關文章