国产探花免费观看_亚洲丰满少妇自慰呻吟_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 變量后,你就可以使用它來創建模板的過濾器和標簽了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高州市| 伊川县| 渝中区| 武安市| 蓝田县| 乌拉特后旗| 合江县| 明溪县| 罗田县| 云安县| 象州县| 临武县| 崇阳县| 阳信县| 桂平市| 伊春市| 宜宾市| 青龙| 邹城市| 徐州市| 隆尧县| 城步| 南皮县| 分宜县| 彭山县| 桑植县| 蒙山县| 鄂托克旗| 平度市| 和硕县| 扎兰屯市| 深泽县| 和田市| 京山县| 伊春市| 乐安县| 岐山县| 台山市| 弥勒县| 资阳市| 芜湖县|