1. 程式人生 > >django下模板的包含和繼承

django下模板的包含和繼承

blog 網頁 per 添加內容 ocs itl extend 框架 字符串

包含:
{% include %} 允許在模板中包含其他模板的內容
標簽的參數可以是:模板名稱、變量 字符串
{% include ‘nav.html‘%} #模板名稱,將被包含的模板中的所有html內容都包含進來,所以一般被包含的模板中直接寫需要的內容即可,不需要再另外寫入其他的head、body、title之類的部分
{% include ‘app/nav.html‘%} #模板路徑
{% include template_name %} #模板變量

還可以在包含的時候傳遞變量
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#include


繼承:
本質上說:模板繼承幾居室先構造一個基礎框架模板,然後在其子模塊中對它所包含站點共用部分和定義進行重載

1、{% block %}
定義塊
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#block

2、{% extends %}
繼承父模塊
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#extends


註意事項:
1、包含和繼承可以把一些共用的網頁模塊獨立出來,以減少代碼的冗余
2、如果在模塊裏使用{% extends %}的話,這個標簽必須在所有模塊標簽的前面,否則模板繼承不工作
3、通常盡可能模板裏的{% block %}越多越好,子模塊不必定義所有的父block
4、如果你需要得到父模塊的內容,{{ block.supper }}變量可以幫你完成工作 當你需要給父模塊添加內容而不是取代它的時候這就很有用
5、不能在同一模板裏定義多個同名的{% block %},因為塊標簽同時在兩個地方工作,不僅僅在子模塊中,而且在父模塊中也填充內容,如果子模塊有兩個同名的標簽,父模板將不能決定使用哪個塊內容來使用

django下模板的包含和繼承