Django筆記04

模板層html

{{}}  變量相關前端

{%%}   邏輯相關git

  前端獲取容器類型的數據統一使用句點符(.)django

模板傳遞值的方式後端

# 以字典的方式傳值
return
render(request,'index.html',{'name':'jason','age0':'18'})
# 將全部變量都傳到前臺,弊端是前端不須要的也會傳到前臺
return render(request,'index.html',locals())

過濾器app

語法
  {{ obj|filter_name:param }}  變量名|過濾器名稱:變量
default
  若是一個變量是false或者爲空,指定默認值
  {{ value|default:"nothing" }}
length
  返回值的長度
  {{ value|length }}
filesizeformat
  將值格式化爲一個以B,KB爲單位的字符串
  {{ value|filesizeformat }}
date
  格式化當前時間
  {{ value|date:"Y-m-d" }}
slice
  切片
  {{ value|slice:"2:-1" }}
truncatechars
  超過指定數量以...顯示
  {{ value|truncatechars }}
safe
  取消轉義
  {{ value|safe }}
  後端實現
  from django.utils.safestring import mark_safe
  ss = mark_safe("<h1>我是h1</h1>")

標籤函數

for標籤:遍歷每個元素
{% for person in person_list %}
  <p>{{ person.name }}</p>
{% endfor %}
能夠經過{{ forloop }}來獲取循環序號
{% empty %}當被循環的對象爲空時執行empty後的語句

if標籤
與後端邏輯相同

with標籤
  當一個名字太過複雜能夠取別名
  {% with 名字 as 別名 %}
  {% endwith %}

自定義標籤,過濾器,inclusion_tagoop

都必須作的事
  1 必須在app下新建一個名爲templatetags的文件夾
  2 在文件夾下建立任意名稱的py文件
  3 在文件內寫下面兩句話
    from django import template
    resgiter = template.Library()
  4 在html文件中使用時須要加載:{% load 文件名 %}

過濾器
  使用的裝飾器:@register.filter()
  使用方式與過濾器相同

標籤
  使用的過濾器:@register.simpl_tag()
  使用的方式與標籤相同

inclusion_tag
  調用可以返回一段html代碼
  使用的裝飾器:@inclusion_tag("存放html代碼的文件")
  使用方式:{% 函數名 參數 %}

模板的繼承spa

  寫一個模板,留出擴展的區域,能夠留多個區域,區域留的越多可擴展性就越高code

  {% extends 模板文件 %}

  {% block 名字 %}

  {% endblock %}

  在子模板中使用原模板內的內容:{{ block.super }}

模板的導入

  寫一個組件,能夠被重複使用

  {% include "模板文件" %}

相關文章
相關標籤/搜索