1. 程式人生 > >Django模板系統(templates)

Django模板系統(templates)

沒有 ... csrf filesize 字母數 files js等 efault 含義

模板語言

常用語法

  兩種特殊符號{ {} }、{%%},變量相關用{ {} },邏輯相關用{%%}

  變量

  {變量名}

  變量名由字母數字和下劃線組成

  點(.)在模板語言中有特殊含義,用來獲取對象的相應屬性值

  模板中支持的寫法:

    {#取1中的第一個參數#}  {{1.0}}

    {#取字典中key的值#}   {{d.name}}

    {#取對象的name屬性#}  {{person_list.0.name}}

    {#操作只能調用不帶參數的方法#}  {{person_list.0.dream}}

  內置Filters

    法:{{value|filter_name:參數}}

    default

      {{value:default:‘nothing’}}  如果value值沒傳的話就顯示nothing

    length

      {{value|length}}    返回value的長度,如value=[a,b,c,d]的話,就顯示4。(‘|’左右兩邊沒有空格)

    filesizeformat

      將值格式化“一個人類可讀”的文件尺寸(例如,13kb,4.1M,202bytes等)

      {{123456789|filesizeformat}}  輸出117.7MB

    slice  切片

      {{value|slice:“2:-1”}}

    date  格式化

      {{value|date:“Y-m-d H:i:s”}}

    safe

    Django的模板中會對HTML標簽和JS等語法標簽進行自動轉義,原因是為了安全。但有時候我們不希望有一些HTML標簽被轉義,比如做一個內容管理系統,後臺添加的文章中是經過裝飾的

    這些裝飾可能是通過一個類似於FCKedirtor編輯加註了HTML裝飾符的文本,如果自動轉義的話顯示的就是保護HTML標簽的源文件。為了在Django中關閉HTML的自動轉義有兩種方式,如果

    是一個單獨的變量我們可以通過過濾器“|safe”的方式告訴Django這段代碼是安全的不必轉義。

    truncatechars

    如果字符串字符多於指定的字符數量,那麽會被截斷。截斷的字符串將以可翻譯的省略號系列(“...”)結尾

    參數:截斷的字符串

    {{value|truncatechars:9}}

  自定義Filter

    自定義過濾器只是帶有一個或兩個參數的Python函數:

    變量(輸入)的值——不一定是一個字符串

    參數的值-這可以有一個默認值,或者完全省略

  for循環

    <ul>

    { %for user in user-list% }

      <li>{{user.name}}</li>

    { %endfor% }

    </ul>

    for循環可用的一些參數

      技術分享圖片

  if,elif,else

    if語句支持and、or、==、>、<、!=、<=、>=、in、not in、is、is not判斷

  with

  定義一個中間變量

  csrf_token

  這個標簽用於跨站請求偽造保護

  在頁面的form表單裏面寫上{%csrf_token%}

  註釋

    母版  我們通常會在母版中定義頁面專用的JS塊、CSS塊,方便子頁面替換

    繼承母版  在子頁面中在頁面最上方使用下面的語法來繼承母版

      {%extends ‘layouts.html%’}

  塊(block)

    通過在母版中使用{%block XXX%}來定義“塊”

    在子頁面中通過定義母版中的block名來對應替換母版中相應的內容

  組件

    可以將常用的頁面內容如導航條,頁面信息等組件保存在單獨的文件中,然後在需要使用的地方按如下語法導入即可

    {%include‘navbar.html’%}

  靜態文件相關

    {%load static%}

    <img src="{%static "mytest.js"%}"alt="Hi!"/>

    引用JS文件時使用:

    {%load static%}

    <script src="{%static "mytest.js"%}"></script>

    某個文件多處被用到可以存為一個變量

    {%load static%}

    {%static “images/hi.jpg” as myphoto%}

    <img src="{{myphoto}}"></img>

    使用get_static_prefix

    {%load static%}

    <img src="{%get_static_prefix%}images/hi.jpg"alt="hi!"/>

    inclution_tag多用於返回html代碼片段

Django模板系統(templates)