Django基礎模板層(75-76)

Django框架之模板層(d75)
一 模版語法之變量:
 ** locals() 會把*該*視圖函數內的變量,傳到模板
    ** return render(request, 'index.html', locals())
 1 {{ 變量 }}:******重要******{#至關於print了該變量#}
  只寫函數名:至關於函數名(),執行該函數,打印函數返回值
 2 深度查詢---->統一都用句點符 .
  拓展:不能調有參數的方法
二 模版之過濾器
 1語法:{{第一個參數|過濾器名字:第二個參數}}
 2經常使用過濾器:(詳細用法見源碼)
  1 length  返回列表中元素的個數或字符串長度
  2 default 若是值不存在,則使用默認值代替
  3 slice 切片操做, 返回列表 # {{ 'asdikfjhih' | slice:':5' }} 返回 ‘asdik’
  4 date   格式化日期    {{ ctim|date:'Y-m-d' }}
  5 filesizeformat 增長數字的可讀性,轉換結果爲13KB  {{ 1024 | filesizeformat }} 返回 1.0KB
  6 truncatechars 字符串字符多於指定的字符數量,那麼會被截斷。截斷的字符串將以可翻譯的省略號序列(「...」)結尾
  7 truncatewords 將字符串轉換爲省略表達方式  {{ 'This is a pen' | truncatewords:2 }}返回  This is ...
  8 safe 單獨的變量咱們能夠經過過濾器「|safe」的方式告訴Django這段代碼是安全的沒必要轉義
  9 add 給value加上一個數值  {{ user.age | add:」5」 }} 
三 模版之標籤 : {% 標籤 %}
  1 for: forloop:對象(裏面有好多東西:parentloop,last,first,counter....)忘記的話, 本身打印一下
   empty:  被循環的對象是空,才走它
   for循環能夠嵌套,也能夠用if
  2 if:
   {% if forloop.first %}
    <p>第一次的我 </p>
   {% elif forloop.last %}
    <p>最後的我 </p>
   {% else %}
    <p>{{ foo }}</p>吧
   {% endif %}
  3 with:重命名,應用在變量名過長
  ********都要有結束******{%endif%}  {%endfor%}  {%enwith%}
四 自定義標籤和過濾器 
 1 自定義過濾器
  1 先app是否是已經在setting中註冊
  2 在app下建立一個templatetags(****名字不能變***)的文件夾(模塊)
  3 在模塊下建立一個py文件,名字隨意:mytag.py
  4 第一步,導入template
     from django.template import Library
    第二步,定義一個叫register的變量=template.Library()
     register = Library()
  5 寫一個函數,用@register.filter(name='yyy')裝飾一下(能夠指定別名)
   def str_add(str1, str2): #必定要有返回值
    # 業務邏輯很複雜
    return str1 + str2
  6 在模板裏:(新定定義的標籤,過濾器,都要重啓程序)
   {% load mytag %}
   {{'lqz'|str_add:'nb'}}
  **過濾器,能夠用在if判斷
 2 自定義標籤:
  1-4:前4步,根過濾器的定義徹底同樣
  5 只是裝飾器不同
   @register.simple_tag()
    def add_nb(value):
     return value+'nb'
  6 在模板裏:(多個參數,以空格區分)
   {% load mytag %}
   {% add_nb 'lqz'%}
  **標籤不能用在if判斷
五 模版導入-->寫了一個好看的組件,能夠複用,
 1 寫一個模板
 2 在模板中:{% include '模板的名字'%}
六 模板的繼承
 1 寫一個母版,留一個可擴展的區域(盒子),能夠留多個盒子(留的越多,可擴展性越高)
  {%block 名字%}
   能夠寫內容
  {%endblock%}
 2 在子模板中使用:
  {%block 名字%}
   子模板的內容
  {%endblock 名字%}
七 靜態文件相關
 1 寫死靜態文件:<link rel="stylesheet" href="/static/css/mycss.css">
 2 使用 static標籤函數:
  -{%load static%}
  #static返回值,會拼上傳參的路徑
  -{% static "傳參"%}
 3 使用get_static_prefix 標籤
  -{%load static%}
  #get_static_prefix返回值是:靜態文件的地址,至關於/static/
  -{% get_static_prefix %}css/mycss.csscss

相關文章
相關標籤/搜索