国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

pythondjango模板

2019-11-14 17:46:10
字體:
供稿:網(wǎng)友
1 用兩個大括號括起來的文字{{person_name}} 稱為變量
2 被 大括號和面分號包圍的文件({% if ordered_warranty %})模板標簽
3 過濾器是用管道符(|) 和Unix管道符一樣
一旦你創(chuàng)建一個 Template 對象,你可以用 context 來傳遞數(shù)據(jù)給它。 一個context是一系列變量和它們值的集合。模板使用它來賦值模板變量標簽和 執(zhí)行塊標簽。
變量名必須由英文字符開始 (A-Z或a-z)并可以包含數(shù)字字符、下劃線和小數(shù)點。 (小數(shù)點在這里有特別的用途,稍后我們會講到)變量是大小寫敏感的。
在 Django 模板中遍歷復(fù)雜數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵是句點字符 (.)。使用句點可以訪問字典的鍵值、屬性、索引和對象的方法。
7 {% if %} 標簽檢查(evaluate)一個變量,如果這個變量為真(即,變量存在,非空,不是布爾值假),系統(tǒng)會顯示在 {% if %} 和 {% endif %} 之間的任何內(nèi)容. {% else %} 標簽是可選的:
 

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

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

15 forloop.revcounter 是表示循環(huán)中剩余項的整型變量。在循環(huán)初次執(zhí)行時 forloop.revcounter 將被設(shè)置為序列中項的總數(shù)。最后一次循環(huán)執(zhí)行中,這個變量將被置1。

16 forloop.revcounter0 類似于 forloop.revcounter ,但它以0做為結(jié)束索引。在第一次執(zhí)行循環(huán)時,該變量會被置為序列的項的個數(shù)減1。在最后一次迭代時,該變量為0。

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

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

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

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

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

{% ifequal %} 中.

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

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

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

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

25 在settings.py中的TEMPLATE_DIRS設(shè)置如下:

import os.path

TEMPLATE_DIRS = (

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

)

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

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

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

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

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

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

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

b. 為網(wǎng)站的每個區(qū)域創(chuàng)建 base_SECTION.html 模板(例如, base_photos.html 和 base_forum.html )。這些模板對 base.html進行拓展,并包含區(qū)域特定的風(fēng)格與設(shè)計。

c. 為每種類型的頁面創(chuàng)建獨立的模板,例如論壇頁面或者圖片庫。這些模板拓展相應(yīng)的區(qū)域模板。

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

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

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

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

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

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

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

g. 多數(shù)情況下, {% extends %} 的參數(shù)應(yīng)該是字符串,但是如果直到運行時方能確定父模板名,這個參數(shù)也可以是個變量。這使得你能夠?qū)崿F(xiàn)一些很酷的動態(tài)功能。

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴马| 沾化县| 福清市| 瑞丽市| 昌都县| 朝阳区| 静海县| 唐河县| 白河县| 治县。| 土默特右旗| 时尚| 辽宁省| 阿拉善盟| 伊金霍洛旗| 双城市| 桂林市| 贵德县| 宜良县| 芮城县| 宁河县| 克拉玛依市| 绍兴市| 沁阳市| 涪陵区| 鄂伦春自治旗| 三门峡市| 灵台县| 瓦房店市| 韶关市| 青田县| 林西县| 沾益县| 永定县| 巨鹿县| 普洱| 平谷区| 阜阳市| 武山县| 云林县| 瑞昌市|