Django Template層之自定義tag by:授客 QQ:1033553122 測試環境 Win7 Django 1.11 實踐 步驟1 應用根目錄下,新建templatetags包目錄(註意:該目錄名稱是約定的),併在該目錄下新建自定義py文件(例中為project_dir/website ...
Django Template層之自定義tag
by:授客 QQ:1033553122
測試環境
Win7
Django 1.11
實踐
步驟1
應用根目錄下,新建templatetags包目錄(註意:該目錄名稱是約定的),併在該目錄下新建自定義py文件(例中為project_dir/website/website_template_tags.py)
代碼佈局如下:
AutoTestPlatform/
__init__.py
models.py
templatetags/
__init__.py
website_template_tags.py
views.py
website_template_tags.py
# -*- encoding:utf-8 - *-
__author__ = 'shouke'
from django import template
from django.conf import settings
register = template.Library() # 註冊tag
@register.simple_tag # 裝飾器表名函數是一個標簽,tag類型中的一種
@register.tag('user_name')
def get_username(session):
username = session.get('username')
return username
說明:
@register.simple_tag # 表名函數是一個tag,類型為Simple tag
@register.tag('user_name') #註冊標簽為模塊的Library實例,name為模板標簽名,該參數如果為空,則預設使用函數名稱為模板標簽名稱
步驟2
html模板中使用自定義tag
{% loadwebsite_template_tags %}
……
<p>user name is {% user_namerequest.session %}</p>
……
參考鏈接:
https://docs.djangoproject.com/en/2.1/howto/custom-template-tags/