在該資料夾中建立乙個py檔案,可以任意取名
py檔案中要例項化乙個library物件
如下:
from django.template import library
register = library()
# filter裝飾器 可以被用在if中,但是最多引數只能傳兩個
@register.filter
def transe(n1, n2):
data = '喜歡'.format(n1, n2)
return data
# ******_tag 可傳多個引數但是不能用於if判斷(指在html中的)
@register.******_tag
def sum(*args)
num = 0
for i in args:
num += i
return
num
# 先載入這個檔案才能使用其中的方法
這是index頁面h1>
hello 使用者h1>
}h1>
h1>
body>
html>
概念:
中介軟體是乙個類
定義:
以後想要對所有的請求做統一操作時,用中介軟體。(幾個例外)
只是對少量的檢視函式做操作時,用裝飾器。
任務:1. 對使用者請求記錄日誌
2. 使用者登入驗證(只有login)
梳理:1. 類
- 繼承middlewaremixin
- 兩個方法
process_request
process_response,必須設定返回值
2. 應用中介軟體
middleware = [
...'***x.md.m1',
]3. 示例:
1. 對使用者請求記錄日誌
2. 使用者登入驗證 (只有login)
3. 許可權驗證
ps: 圖+方法+引數
中介軟體是有順序的,就像我們進門一樣進來是1 2 3 4 那我們出去就是4 3 2 1
我們建立乙個資料夾任意命名
然後在資料夾中建立乙個py檔案
建立乙個類繼承middlewaremixin
**如下
# 在請求頭中返回none才是正常進行下一步操作,
# 可以這麼思考如果沒有這個中介軟體那麼函式就沒有返回值,沒有返回值那就是預設返回none
if req.path_info == '/login/'
:return
none
user_info = req.session.get('user')
ifnotuser_info:
return redirect('/login/')
defprocess_response(self, rep)
return rep
寫完以後我們需要在與專案名字相同的檔案中是settings的middleware中新增
Django自定義模板函式
模板函式是使用於模板檔案的處理函式,模板函式的使用方式是 1.建立自定義函式資料夾 想要使用自定義模板函式的話需要先建立用於存放函式的資料夾,而在django中對於自定義函式資料夾的名稱有嚴格的要求,即要求存放自定義模板函式的資料夾必須叫templatetags。建立模板函式py檔案,檔名可自定義,...
Django基礎 6 模板語言和自定義管道
2.今日內容 看圖 固定寫法,生成乙個註冊例項物件 register template.library register.filter 告訴django的模板語言我現在註冊乙個自定義的filter def add sb value 給任意指定的變數新增sb param value 左邊被修飾的那個變...
Django自定義模板過濾器
比如,現在通過資料採集,得到了全國3億人的生日,然後要在前端進行展示,但是,由於資料 多處,導致生日的格式各種各樣,比如 1983 02 03 2016年4月16日,這個時候如果資料採集過程當中沒有進行資料過濾,就需要有一種功能針對每一條資料的日期進行修改。這時候就需要用到過濾器了。在templat...