Flask學習筆記(十)巨集 繼承 包含

2021-10-08 11:34:22 字數 1189 閱讀 2420

巨集、繼承、包含

類似於python中的函式,巨集的作用就是在模板中重複利用**,避免**冗餘。

jinja2支援巨集,還可以匯入巨集,需要在多處重複使用的模板**片段可以寫入單獨的檔案,再包含在所有模板中,以避免重複。

定義巨集呼叫巨集

}定義帶引數的巨集

呼叫巨集,並傳遞引數

}把巨集單獨抽取出來,封裝成html檔案,其它模板中匯入使用

檔名可以自定義macro.html

在其它模板檔案中先導入,再呼叫

模板繼承:

模板繼承是為了重用模板中的公共內容。一般web開發中,繼承主要使用在**的頂部選單、底部。這些內容可以定義在父模板中,子模板直接繼承,而不需要重複書寫。

``標籤定義的內容,相當於在父模板中挖個坑,當子模板繼承父模板時,可以進行填充。

子模板使用extends指令宣告這個模板繼承自哪?父模板中定義的塊在子模板中被重新定義,在子模板中呼叫父模板的內容可以使用super()。

父模板:base.html

頂部選單

底部子模板:

需要填充的內容

模板繼承使用時注意點:

不支援多繼承。

為了便於閱讀,在子模板中使用extends時,盡量寫在模板的第一行。

不能在乙個模板檔案中定義多個相同名字的block標籤。

當在頁面中使用多個block標籤時,建議給結束標籤起個名字,當多個block巢狀時,閱讀性更好。

包含(include)

jinja2模板中,除了巨集和繼承,還支援一種**重用的功能,叫包含(include)。它的功能是將另乙個模板整個載入到當前模板中,並直接渲染。

示例:include的使用

包含在使用時,如果包含的模板檔案不存在時,程式會丟擲templatenotfound異常,可以加上ignore missing關鍵字。如果包含的模板檔案不存在,會忽略這條include語句。

示例:include的使用加上關鍵字ignore missing

巨集、繼承、包含:

巨集(macro)、繼承(block)、包含(include)均能實現**的復用。

繼承(block)的本質是**替換,一般用來實現多個頁面中重複不變的區域。

巨集(macro)的功能類似函式,可以傳入引數,需要定義、呼叫。

包含(include)是直接將目標模板檔案整個渲染出來。

flask 包含,繼承,巨集

包含,繼承,巨集 都是為了提高 的效率,都是為了防止 的沉餘,浪費資源 巨集 macro 可以把它看做jinja2中的乙個函式,他會返回乙個模板或者html字串,為了避免反覆的編寫同樣的模板 出現 沉餘,可以把它們協程函式以進行重用,需要在多出重複使用的模板 片段可以寫入單獨的檔案,在包含在所有模板...

flask 巨集,繼承和包含

flask中 的巨集就是為了避免 的重用,提高開發效率的一種方式,在 復用率高的情況下 只需要定義乙個巨集,然後重複呼叫就行了,首先定義乙個巨集 macro 如以下 把乙個標籤的字段定義乙個巨集 然後再呼叫巨集 這樣可以多次重複呼叫就能達到自己i想要的效果,是不是很方便呢 繼承block 繼承從名字...

Flask學習筆記

web 發展至今,特別是伺服器端,涉及到的知識 內容,非常廣泛。這對程式設計師的要求會越來越高。如果採用成熟,穩健的框架,那麼一些基礎的工作,比如,網路操作 資料庫訪問 會話管理等都可以讓框架來處理,那麼程式開發人員可以把精力放在具體的業務邏輯上面。使用web框架開發web應用程式可以降低開發難度,...