詳解在Python的Django框架中創(chuàng)建模板庫的方法
不管是寫自定義標簽還是過濾器,第一件要做的事是創(chuàng)建模板庫(Django能夠導入的基本結構)。
創(chuàng)建一個模板庫分兩步走:
第一,決定模板庫應該放在哪個Django應用下。 如果你通過 manage.py startapp 創(chuàng)建了一個應用,你可以把它放在那里,或者你可以為模板庫單獨創(chuàng)建一個應用。 我們更推薦使用后者,因為你的filter可能在后來的工程中有用。
無論你采用何種方式,請確保把你的應用添加到 INSTALLED_APPS 中。 我們稍后會解釋這一點。
第二,在適當的Django應用包里創(chuàng)建一個 templatetags 目錄。 這個目錄應當和 models.py 、 views.py 等處于同一層次。 例如:
books/ __init__.py models.py templatetags/ views.py
在 templatetags 中創(chuàng)建兩個空文件: 一個 __init__.py (告訴Python這是 一個包含了Python代碼的包)和一個用來存放你自定義的標簽/過濾器定義的文件。 第二個文件的名字稍后將用來加載標簽。 例如,如果你的自定義標簽/過濾器在一個叫作 poll_extras.py 的文件中,你需要在模板中寫入如下內容:
{% load poll_extras %}
{% load %} 標簽檢查 INSTALLED_APPS 中的設置,僅允許加載已安裝的Django應用程序中的模板庫。 這是一個安全特性;它可以讓你在一臺電腦上部署很多的模板庫的代碼,而又不用把它們暴露給每一個Django安裝。
如果你寫了一個不和任何特定模型/視圖關聯的模板庫,那么得到一個僅包含 templatetags 包的Django應用程序包是完全正常的。 對于在 templatetags 包中放置多少個模塊沒有做任何的限制。 需要了解的是:{%load%}語句是通過指定的Python模塊名而不是應用名來加載標簽/過濾器的。
一旦創(chuàng)建了Python模塊,你只需根據是要編寫過濾器還是標簽來相應的編寫一些Python代碼。
作為合法的標簽庫,模塊需要包含一個名為register的模塊級變量。這個變量是template.Library的實例,是所有注冊標簽和過濾器的數據結構。 所以,請在你的模塊的頂部插入如下語句:
from django import template register = template.Library()
注意
請閱讀Django默認的過濾器和標簽的源碼,那里有大量的例子。 他們分別為: django/template/defaultfilters.py 和 django/template/defaulttags.py 。django.contrib中的某些應用程序也包含模板庫。
創(chuàng)建 register 變量后,你就可以使用它來創(chuàng)建模板的過濾器和標簽了。
- Python 數據的累加與統計的示例代碼
- 用python按照圖像灰度值統計并篩選圖片的操作(PIL,shutil,os)
- python統計字符串中字母出現次數代碼實例
- python統計文章中單詞出現次數實例
- Python統計文本詞匯出現次數的實例代碼
- python統計函數庫scipy.stats的用法解析
- python實現數據分析與建模
- python 應用之Pycharm 新建模板默認添加編碼格式-作者-時間等信息【推薦】
- Python基于Logistic回歸建模計算某銀行在降低貸款拖欠率的數據示例
- Python內建模塊struct實例詳解
- Python創(chuàng)建模塊及模塊導入的方法
- Python進行統計建模
相關文章
通過selenium抓取某東的TT購買記錄并分析趨勢過程解析
這篇文章主要介紹了通過selenium抓取某東的TT購買記錄并分析趨勢過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08
python+pywinauto+lackey實現PC端exe自動化的示例代碼
這篇文章主要介紹了python+pywinauto+lackey實現PC端exe自動化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
Python如何快速生成本項目的requeirments.txt實現
本文主要介紹了Python如何快速生成本項目的requeirments.txt實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03

