国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解在Python的Django框架中創建模板庫的方法

2020-01-04 18:01:36
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在Python的Django框架中創建模板庫的方法,模版庫通常用來管理單獨的Django中的應用,需要的朋友可以參考下

不管是寫自定義標簽還是過濾器,第一件要做的事是創建模板庫(Django能夠導入的基本結構)。

創建一個模板庫分兩步走:

第一,決定模板庫應該放在哪個Django應用下。 如果你通過 manage.py startapp 創建了一個應用,你可以把它放在那里,或者你可以為模板庫單獨創建一個應用。 我們更推薦使用后者,因為你的filter可能在后來的工程中有用。

無論你采用何種方式,請確保把你的應用添加到 INSTALLED_APPS 中。 我們稍后會解釋這一點。

第二,在適當的Django應用包里創建一個 templatetags 目錄。 這個目錄應當和 models.py 、 views.py 等處于同一層次。 例如:

 

 
  1. books/ 
  2. __init__.py 
  3. models.py 
  4. templatetags/ 
  5. views.py 

在 templatetags 中創建兩個空文件: 一個 __init__.py (告訴Python這是 一個包含了Python代碼的包)和一個用來存放你自定義的標簽/過濾器定義的文件。 第二個文件的名字稍后將用來加載標簽。 例如,如果你的自定義標簽/過濾器在一個叫作 poll_extras.py 的文件中,你需要在模板中寫入如下內容:

 

 
  1. {% load poll_extras %} 

{% load %} 標簽檢查 INSTALLED_APPS 中的設置,僅允許加載已安裝的Django應用程序中的模板庫。 這是一個安全特性;它可以讓你在一臺電腦上部署很多的模板庫的代碼,而又不用把它們暴露給每一個Django安裝。

如果你寫了一個不和任何特定模型/視圖關聯的模板庫,那么得到一個僅包含 templatetags 包的Django應用程序包是完全正常的。 對于在 templatetags 包中放置多少個模塊沒有做任何的限制。 需要了解的是:{%load%}語句是通過指定的Python模塊名而不是應用名來加載標簽/過濾器的。

一旦創建了Python模塊,你只需根據是要編寫過濾器還是標簽來相應的編寫一些Python代碼。

作為合法的標簽庫,模塊需要包含一個名為register的模塊級變量。這個變量是template.Library的實例,是所有注冊標簽和過濾器的數據結構。 所以,請在你的模塊的頂部插入如下語句:

 

 
  1. from django import template 
  2.  
  3. register = template.Library() 

注意

請閱讀Django默認的過濾器和標簽的源碼,那里有大量的例子。 他們分別為: django/template/defaultfilters.py 和 django/template/defaulttags.py 。django.contrib中的某些應用程序也包含模板庫。

創建 register 變量后,你就可以使用它來創建模板的過濾器和標簽了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夏邑县| 车险| 大兴区| 徐汇区| 泽州县| 遵义市| 彰化市| 灵武市| 隆昌县| 资兴市| 彭山县| 天峻县| 顺昌县| 常山县| 绍兴市| 金溪县| 梅河口市| 天长市| 咸宁市| 惠安县| 喀喇沁旗| 西吉县| 河东区| 磴口县| 元谋县| 江西省| 郑州市| 南召县| 永平县| 崇文区| 广灵县| 朝阳区| 安顺市| 利津县| 曲阳县| 绵阳市| 外汇| 丽水市| 黔江区| 仁布县| 富民县|