django 簡單過濾器

1.創建完django項目 並完成settings.py基本操作

2.在app中創建文件templatetags,並在此內部創建過濾器文件 ,myfilter.py

然後註冊並設置過濾器限制條件及輸出情況

from django.template import  Library
register = Library()

# 過濾器後面寫名字 如果名字不寫 默認爲函數名字

# register 註冊登錄
# 註冊過濾器
@register.filter
def add(value):
    return value+ '------------------'
#註冊過濾器
@register.filter
def change_length(value):
    if len(value) >10:
        return value[0:10]+'.....'
    return value

#註冊標籤 simple簡單
@register.simple_tag
def myTag(value1 ,value2):
    if value1 =='a':
        return '<a href="https://www.baidu.com">雄霸</a>'
    if value2 =='b':
        return '<h1>天下</h1>'

import datetime
@register.simple_tag
def get_current_time():
    time = datetime.datetime.now()
    time = time.strftime('%Y-%m-%d %H:%M:%S')
    return '<h1>{}</h1>'.format(time)

3.在views中寫一個即將要被過濾的信息,並傳給index.html,並在url中寫路徑指向

from django.shortcuts import render

# Create your views here.
def index(request):
    str = 'ABCDEFGhijklmn'
    return render(request,'index.html',{'content':str})

4.創建一個templates文件夾 ,並在此種創建一個html文件

在該html文件中 使用前面註冊的過濾器,展示效果

首先要先加載過濾器,然後關閉自動轉義,標籤才能顯示效果

{% load myfilter %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>{{content|upper|lower|add}}</h1>
    <h1>{{content|change_length}}</h1>
    {# 自定義標籤會被django內部的安全機制定義爲非法內容,因爲默認對自定義標籤使用了轉義讓瀏覽器認爲它是一個普通的文本,使標籤失去了效果 #}


        {# 關閉自動轉義,讓標籤顯示效果#}
    {% autoescape off %}
        {% myTag 'a' 'b'%}
    {% endautoescape %}

    {% autoescape off %}
        {% get_current_time%}
    {% endautoescape %}
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章