Django零基礎入門之自定義過濾器及模板中的使用

2022-09-25 03:54:07 字數 1919 閱讀 6285

目錄

分析django內建的模板過濾器:

通過分析可以將內建的過濾器理解為:

乙個帶有乙個或兩個引數的python函式:

第乙個——通過自定義過濾器實現內建過濾器lower!(無引數)

在templatetags模組裡,建立乙個py檔案,編寫自定義過濾器,檔名稱可以隨便定,這裡我用common_extras.py:

1.專案目錄下的urls.py中進行路由分配;

2.建立模板檔案:templates/ceshi/程式設計客棧test1.html;

3.新建的app裡設定路由,編寫檢視函式

檢視函式編寫:

(ceshi/views.py檔案)

from django.shortcuts import render

# create your views here.

def test1(request):

str1 = "cool boy"

return render(request, "ceshi/test1.html", context=)

通過傳遞乙個字串str1給模板,在模板中使用過濾器對其進行變形。

4.模板檔案編寫(使用內建過濾器):

(templates/ceshi/test1.html檔案)

ebjobn

title

原字串:}

內建過濾器的使用:}

5.效果展示(lower過濾器功能:將變數全部變為小寫):

(common_extras.py檔案)

注意:自定義過濾器必須用library().filter 來進行裝飾, 裝飾後的函式,才能當作過濾器來使用!

#用於編寫自定義過濾器及標籤

from django import template

register = template.library()

@register.filter # 加此裝飾器就可以理解為註冊此自定義過濾器。就可以使用了!

def mylower(value): # value接收變數

return value.lower()

講解:django.template.library.filter()

1.library.filter()方法需要兩個引數:

a. 過濾器的名稱(乙個字串物件)

b. 編譯的函式 – 乙個python函式(不程式設計客棧要把函式名寫成字串)

2.可以把register.filter()用作裝飾器(常用方法,本文也是這樣使用!);

3.如果宣告name引數,django將使用nam引數的值作為過濾器的名字。例如:@register.filter(name=「lowermy」),此時在使用這個自定義過濾器,就需要使用lowermy這個名字。

4.沒有宣告 name 引數,django將使用函式名作為過濾器的名字。

下面是不常用的方法:

def mycut(value,arg):

return value.replace(arg,"")

register.filter("mycut",mycut)

(templates/ceshi/test1.html檔案)

注意:在模板中必須用 來引入自定義過濾器函式所在的py檔案,name是py檔案的名字。自定義過濾器的使用方法同內建過濾器一樣!

第二個——通過自定義過濾器實現內建過濾器cut!(有引數)

(1)更改檢視函式:

(ceshi/views.py檔案)

(2)更改前端模板——使用內建過濾器cut:

效果展示(cut過濾器功能:將指定引數變為空字串)ebjobn:

(3)自定義過濾器的使用:

(common_extras.py檔案)

(4)模板中使用自定義過濾器:

(templates/ceshi/test1.html檔案)

(5)效果展示:

零基礎自定義資料集入門示例

總結乙個簡單的自定義資料集示例 假設資料檔案儲存在path中的txt檔案中,內容為 時間,資料1,資料2,資料3 的列表 對應的標籤存在label.txt中 from torch.utils.data import dataset 自定義資料集,繼承自dataset類 必須包含 init getit...

Django入門之自定義頁面

django admin.py startproject helloword 第二步需要進入helloword目錄執行 詳情猛擊 黃色部分為新增 django1 url configuration the urlpatterns list routes urls to views.for more ...

Python零基礎入門之函式

函式的命名空間和作用域 函式的三類命名空間 內建 全域性 區域性 兩大作用域 全域性 內建和全域性命名空間都屬於全域性作用域 區域性 區域性命名空間屬於區域性作用域 什麼是作用域鏈?就是由外而內的命名空間中的中的變數的生存週期都是就近原則 全域性作用域 大區域性作用域 小區域性作用域 函式的兩大引數...