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...