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

首頁 > 學院 > 開發設計 > 正文

Djangotemplate

2019-11-14 17:34:51
字體:
來源:轉載
供稿:網友
  1. template是基于文本格式的文件(html文件也是文本格式),包含如下一些關鍵字:
    • variables:當template被evaluated時,variable會被替換成相應的值,variable在模板中的格式:{{variable}},如果variable不存在,模板會使用TEMPLATE_STRING_IF_INVALID設置的值替換變量,默認是‘’.template中方法調用也是變量的一種,如{{blog.entry_set.all.count}},注意方法做變量時沒辦法傳遞參數,所以只能是無參方法作變量
    • filters:用于修改variable,‘|’稱為管道符,對變量應用filter,如{{name|low}},其中low就是一個filter,filter還可以有參數,也可以自定義filter。django中大概有三十種filter,常用的有:
      • default:如果變量是false或者空,使用default值替換variable,{{value|default:”nothing”}},default的值默認不轉義
      • length:獲取變量的長度,{{value|length}}
      • striptags:除去html標簽,{{value|striptags}}:value中含有標簽時,標簽會被刪除只返回value的剩余部分
      • escape:轉義字符串中的html標簽
      • safe:使變量輸出不會進行html轉義,如果設置了自動轉義關閉,這個filter就會失效
    • comments:用于模板中注釋,格式{##},注釋中也可包含代碼,{# {%if foo%}bar{%else%} #},模板evaluated時會正常執行
    • tags:控制template的邏輯,格式{% tag %},部分tag還要有{% endtag %},django自帶大約二十多個tag,常用的如下:
      • for:用于數組循環
        for example
      • if,elif,和else:
        if example
      • block和extends:模板繼承時使用,block表示可以在子模板中改寫的塊,同一模板中的block名字不能相同,extends表示用于繼承父模板
  2. 模板繼承:
    • 繼承模板使用{% extends %},并且它必須是子模板中第一個tag
    • 推薦在base template中多使用{% block %}
    • 如果多個模板中有重復內容,則考慮將內容移到base template中的{% block %}下
    • 如果要在子模板的{%block%}中訪問父模板的block內容可以使用{{block.super}}
  3. Django模板中默認開啟了對用于輸出的變量的html轉義,如果要關閉轉義功能,可以在變量,模板,site三個級別設置關閉
    關閉轉義
  4. Context 類:傳遞給模板,作用是替換模板中的變量。Context對象是個stack,所以包含push和pop方法,構造函數中可以包含兩個參數:
    • 一個字典型,用于映射變量名和變量值
    • 當前application的名字,當url有命名空間時有用
      Context
  5. RequestContext:Context的子類,其與Context有兩個不同:
    • 第一個參數是HttPRequest對象
    • 會調用TEMPLATE_CONTEXT_PROCESSOR中的processor依次往RequestContext中加入一些預定義變量,自己也可以定義額外的processor再添加其他內容到RequestContext中
      RequestContext processor
  6. 使用模板通常有兩個步驟:
    • compile模板存到一個對象中.模板只編譯一次
    • 調用模板對象的render方法,參數是context
      Template example
  7. variable lookup:變量名中可以包含點,當點出現時,以{{foo.bar}}為例它的解析順序為:
    • dictionary lookup,如foo[“bar”]
    • attribute lookup,如foo.bar
    • list-index lookup,如foo[bar]
    • method lookup
      Variable lookup
  8. method lookup時,注意以下幾點:
    • 調用方法拋出異常時,如果異常類型設置了”靜態屬性”silent_variable_failure=true,則變量會被替換為空,否則會替換為異常信息
    • 如果方法含有參數,則變量會被替換為空
    • 在模板中調用某些方法會產生負面影響如model.delete().為了防止這種情況可以設置alters_data=true.這樣方法不會被調用,而是用TEMPLATE_STRING_IF_INVALID替換變量的值。model.delete方法的alters_data默認為true

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆丰市| 连山| 灵宝市| 依兰县| 九江市| 隆德县| 诏安县| 内丘县| 姜堰市| 日喀则市| 桐城市| 仙桃市| 龙川县| 平原县| 阳春市| 吉水县| 兴安盟| 阜阳市| 岗巴县| 湘潭县| 林西县| 乌兰浩特市| 福贡县| 开化县| 新巴尔虎右旗| 佛教| 临澧县| 那曲县| 汉源县| 清涧县| 揭阳市| 伊金霍洛旗| 武穴市| 互助| 浠水县| 聂拉木县| 汉寿县| 鹤壁市| 吐鲁番市| 霍林郭勒市| 清流县|