1. 程式人生 > >django的模板語言

django的模板語言

django 模板

模板可以分為下面幾類
- 母版
- 函數->>自動執行(這裏自動執行是不能給參數的)
- 模板自定義函數:
        * simple_filter
        這個simple_filter就是html裏面的{{name|upper}}中的upper,這個內置函數就是一個simple_filter

自定義simple_tag

參考:https://docs.djangoproject.com/en/1.10/ref/templates/language/
http://www.cnblogs.com/wupeiqi/articles/5237704.html
1、要在任意的一個app下面創建名字必須為templatetags

的目錄,如下圖
技術分享圖片
2、在這個templatetags目錄下面創建任意一個名字的py文件,如下圖
技術分享圖片
3,在模板使用的時候需要導入
技術分享圖片
4、這個app必須要在setting裏面做了配置,否則不能使用自定義的
技術分享圖片
5,多個參數的傳參
給xxx.py文件修改,可以獲取多個參數

技術分享圖片
這個時候如果,前端引用的時候還是name|my_upper,沒有給傳參數就會報錯,如下
技術分享圖片
所以我們可以在應用的時候傳遞第二個參數

    {{ name|my_upper:"89989898"}}

這樣得到的結果,後面是有值的,如下圖
技術分享圖片

filter 這只能傳遞一個參數,既my_upper:"89989898"中的my_upper後面不能有空格,直接加一個字符串,要想多個,就用逗號分隔,寫成多個my_upper:"89,98,98,98"


這裏的filter,可以作為if 判斷語句的條件,而下面的tag就是不可以的

tag方法

技術分享圖片
技術分享圖片

模板的語言

{{ item }}
{% for item in item_list %}  <a>{{ item }}</a>  {% endfor %}
  forloop.counter
  forloop.first
  forloop.last 
{% if ordered_warranty %}  {% else %} {% endif %}
母板:{% block title %}{% endblock %}
子板:{% extends "base.html" %}
   {% block title %}{% endblock %}
幫助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}}
{{ bio|truncatewords:"30" }}
{{ my_list|first|upper }}
{{ name|lower }}

公共的組件include方法

技術分享圖片

django的模板語言