django 模板高階

2021-09-16 13:52:40 字數 2775 閱讀 8551

1.語法

1.1.for迴圈

forloop.counter  #從1開始

forloop.counter0 #從0開始

forloop.revcounter #倒序到1

forloop.revcounter0 #倒序到0

forloop.first #第一次迴圈出的結果為true 其他為flase

forloop.first #最後一次迴圈出的結果為true 其他為flase

parentloop

for...empty

沒有迴圈出內容的提示

1.2.if語句

if else}}

注:1.可以在if判斷裡加上過濾器

2.支援邏輯運算,不支援數**算,不支援連續運算()

1.3.with語句 取別名

1.4.注釋

注釋差別

注釋之後,相當於該內容並沒有執行

<--! ... --> 注釋之後,內容不顯示,但是該內容已經執行

1.5.csrf-token

csrf   #跨站請求偽造

在form表單中內加入

1.6.母版和繼承

母版:普通的html檔案 提取了多個頁面的公共部分 預留好子模板的位置

步驟:1.母版模板

1.預留子模板的位置(會被子模板的內容替換)

2.在子模板中(繼承)

1.引入母版:

2.加入獨特的部分

獨特的部分

注意:

1. 寫在第一行,前面不要有內容

2. 母版名要加上'' 否則會當做乙個變數查詢

#解決方式:

3.要顯示在頁面裡的內容,要放在block內

4.模板中定義多個block 一般寫上js cs

1.7.元件

#可以將常用的頁面內容如導航條,頁尾資訊等元件儲存在單獨的檔案中,

#然後在需要使用的地方按如下語法匯入即可

把一小段html 單獨放到乙個html檔案中,需要的html檔案去引用這一小段html

1.8.靜態檔案(不是很明白,需要繼續學習)

1.獲取

#動態獲取static

2.使用

方法一: #獲取乙個完整的靜態檔案的路徑

方法二: #獲取靜態檔案的別名

eg: "路徑"

2.自定義******_tag 引數靈活,無限制

步驟:

2.在包內建立py檔案

3.在py檔案內的內容

1. from django import template #固定寫法

#from django.template import library #固定寫法 另外一套寫法配合使用

2. register = template.library() #固定寫法

#register = library() #另外一套寫法配合引入方式使用

3.寫函式+裝飾器

@register.******_tag

def 函式名(*args,**kwargs)

return

4.使用

# 先導入我們自定義filter那個檔案 #}

#將引數傳給函式進行操作

3.自定義inclusion_tag

返回乙個html片段,動態

3.1步驟:

2.在包內建立py檔案

3.在py檔案內的內容

1. from django import template #固定寫法

#from django.template import library #固定寫法 另外一套寫法配合使用

2. register = template.library() #固定寫法

#register = library() #另外一套寫法配合引入方式使用

3.寫函式+裝飾器

@register.inclusion_tag(元件模板檔名) #把返回內容,交給元件模板檔案進行渲染

def 函式名(num) #引數是從需要主模板檔案中獲取,其實也是從views中得到

return #注意以字典的形式進行返回,返回給元件模板檔案

4.使用 (在主模板檔案中)

# 先導入我們自定義filter那個檔案 #}

# 使用我們自定義的 #}

#把引數傳給函式進行操作 得到的返回值是從模板檔案中傳過來的html片段

整個傳遞順序:

views.py(把引數返回給主模板檔案)------->

主模板檔案(帶著引數)------->

templatetags內的函式(帶著返回值)------>

元件模板(帶著渲染好的html片段)----->

主模板檔案

注:1.主模板檔案:要展示的頁面

2.templatetags內的函式:可以理解為過濾器

3.元件模板:裡面只是放乙個html片段,任何乙個主模板都可以使用

4.(個人理解:)整個順序可以理解為乙個前後端的互動,前端就是模板檔案,後端是views.py.

前後端互動,後端接收資訊一般是從input中獲取,獲取到的資料型別是字串

前後端互動,後端傳送給前端資訊,一般是通過return ....將引數傳給前端.前端進行使用

django 高階 模板

模板概述 django處理模板分為兩個階段 檢視呼叫模板 呼叫模板分為三步驟 開啟booktst views.py檔案,呼叫上面定義的模板檔案 from django.http import httpresponsefrom django.template import loader,request...

Django 模板高階

模板變數的解析順序 例如 1 首先把book當成乙個字典,把btitle當成鍵名,進行取值book btitle 2 把book當成乙個物件,把btilte當成屬性,進行取值book.btitle 3 把book當成乙個物件,把btitle當成物件的方法,進行取值book.btitle 例如 1 首...

Django 模板高階

這節主要講django 模板中的迴圈,條件判斷,常用的標籤,過濾器的使用 如果需要將乙個或多個變數共享給多個網頁或所有網頁使用,比如在網頁上顯示來訪者 ip 這個用 django 上下文渲染器來做 view.py coding utf 8 from django.shortcuts import r...