日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python django 模板

發布時間:2025/4/14 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python django 模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 用兩個大括號括起來的文字{{person_name}} 稱為變量 2 被 大括號和面分號包圍的文件({% if ordered_warranty %})是模板標簽 3 過濾器是用管道符(|) 和Unix管道符一樣 4?一旦你創建一個?Template對象,你可以用?context來傳遞數據給它。 一個context是一系列變量和它們值的集合。模板使用它來賦值模板變量標簽和 執行塊標簽。 5?變量名必須由英文字符開始 (A-Z或a-z)并可以包含數字字符、下劃線和小數點。 (小數點在這里有特別的用途,稍后我們會講到)變量是大小寫敏感的。 6?在 Django 模板中遍歷復雜數據結構的關鍵是句點字符 (.)。使用句點可以訪問字典的鍵值、屬性、索引和對象的方法。 7 {%?if?%}?標簽檢查(evaluate)一個變量,如果這個變量為真(即,變量存在,非空,不是布爾值假),系統會顯示在?{%?if?%}?和?{%?endif?%}?之間的任何內容. {% else %} 標簽是可選的:

8?在python中空的列表 (?[]?),tuple(?()?),字典(?{}?),字符串(?''?),零(?0?),還有?None?對象,在邏輯判斷中都為假,其他的情況都為真。

9?{%?if?%}標簽接受?and,?or或者?not關鍵字來對多個變量做判斷 ,或者對變量取反(?not)并沒有 10?{%?elif?%}標簽,請使用嵌套的?{%?if?%}?,?一定要用?{%?endif?%}?關閉每一個?{%?if?%}?標簽. 11?{%?for?%}允許我們在一個序列上迭代。與Python的?for語句的情形類似,循環語法是?for?X?in?Y,Y是要迭代的序列而X是在每一個特定的循環中使用的變量名稱。每一次循環中,模板系統會渲染在?{%?for?%}和?{%?endfor?%}之間的所有內容. 12?Django不支持退出循環操作。如果我們想退出循環,可以改變正在迭代的變量,讓其僅僅包含需要迭代的項目 13?{%?for?%}標簽在循環中設置了一個特殊的?forloop模板變量 14?forloop.counter0類似于forloop.counter,但是它是從0計數的。第一次執行循環時這個變量會被設置為0。

15 forloop.revcounter?是表示循環中剩余項的整型變量。在循環初次執行時?forloop.revcounter?將被設置為序列中項的總數。最后一次循環執行中,這個變量將被置1。

16 forloop.revcounter0?類似于?forloop.revcounter?,但它以0做為結束索引。在第一次執行循環時,該變量會被置為序列的項的個數減1。在最后一次迭代時,該變量為0。

17 forloop.first?是一個布爾值。在第一次執行循環時該變量為True,在下面的情形中這個變量是很有用的。

18?forloop.last?是一個布爾值;在最后一次執行循環時被置為True。一個常見的用法是在一系列的鏈接之間放置管道符(|)

19?forloop?變量僅僅能夠在循環中使用,在模板解析器碰到?{%?endfor?%}?標簽時,?forloop?就不可訪問了

20?{%?ifequal?%}?標簽比較兩個值,當他們相同時,顯示在?{%?ifequal?%}?和?{%?endifequal?%}?之中所有的值。

21?和?{%?if?%}?類似,?{%?ifequal?%}?支持可選的?{%?else%}?標簽,?只有模板變量,字符串,整數和小數可以作為?{%?ifequal?%}?標簽的參數,其他的一些類型,例如Python的字典類型、列表類型、布爾類型,不能用在?

{%?ifequal?%}?中.

22?象HTML和其他的語言例如python一樣,Django模板系統也允許注釋。 注釋使用?{#?#}?

23?模板過濾器是在變量被顯示前修改它的值的一個簡單方法

23?addslashes?: 添加反斜杠到任何反斜杠、單引號或者雙引號前面。 這在處理包含JavaScript的文本時是非常有用的。

24?date?: 按指定的格式字符串參數格式化?date?或者?datetime?對象 ? ??

25 在settings.py中的TEMPLATE_DIRS設置如下:

import os.path

TEMPLATE_DIRS = (

? ? os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),

)

26?django.shortcuts?模塊中名為?render_to_response()?的函數。大多數時候,你將使用?render_to_response()?,而不是手動加載模板、創建?Context?和?HttpResponse?對象,它會加載模板、填充?context?、將經解析的模板結果返回為?HttpResponse?對象這一系列操作

27??{%?include?%}?。該標簽允許在(模板中)包含其它的模板的內容。標簽的參數是所要包含的模板名稱,可以是一個變量,也可以是用單/雙引號硬編碼的字符串。每當在多個模板中出現相同的代碼時,就應該考慮是否要使用?{%?include?%}?來減少重復

28?模板繼承就是先構造一個基礎框架模板,而后在其子模板中對它所包含站點公用部分和定義塊進行重載。

29?{%?block?%}?標簽告訴模板引擎,子模板可以重載這些部分

30 ??{%?extends?%}?標簽,該模板是一個子模板。模板引擎立即裝載其父模板

31?繼承并不改變 context 的工作方式,而且你可以按照需要使用多層繼承。使用繼承的一種常見方式是下面的三層法:

a. 創建?base.html?模板,在其中定義站點的主要外觀感受。這些都是不常修改甚至從不修改的部分。

b. 為網站的每個區域創建?base_SECTION.html?模板(例如,?base_photos.html?和?base_forum.html?)。這些模板對?base.html進行拓展,并包含區域特定的風格與設計。

c. 為每種類型的頁面創建獨立的模板,例如論壇頁面或者圖片庫。這些模板拓展相應的區域模板。

32?使用模板繼承的一些訣竅:

a. 如果在模板中使用?{%?extends?%}?,必須保證其為模板中的第一個模板標記。否則,模板繼承將不起作用。

b. 一般來說,基礎模板中的?{%?block?%}?標簽越多越好。記住,子模板不必定義父模板中所有的代碼塊,因此你可以用合理的缺省值對一些代碼塊進行填充,然后只對子模板所需的代碼塊進行(重)定義。俗話說,鉤子越多越好。

c. 如果發覺自己在多個模板之間拷貝代碼,你應該考慮將該代碼段放置到父模板的某個?{%?block?%}?中。

d. 如果需要獲得父模板中代碼塊的內容,可以使用?{{?block.super?}}?變量。如果只想在上級代碼塊基礎上添加內容,而不是全部重載,該變量就顯得非常有用了。

e. 不可同一個模板中定義多個同名的?{%?block?%}?。存在這樣的限制是因為block 標簽的工作方式是雙向的。也就是說,block 標簽不僅挖了一個要填的坑,也定義了在?父?模板中這個坑所填充的內容。如果模板中出現了兩個相同名稱的{%?block?%}?標簽,父模板將無從得知要使用哪個塊的內容。

f. {%?extends?%}?對所傳入模板名稱使用的加載方法和?get_template()?相同。也就是說,會將模板名稱被添加到TEMPLATE_DIRS?設置之后。

g. 多數情況下,?{%?extends?%}?的參數應該是字符串,但是如果直到運行時方能確定父模板名,這個參數也可以是個變量。這使得你能夠實現一些很酷的動態功能。

?

轉載于:https://www.cnblogs.com/fangshenghui/p/3749762.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的python django 模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。