Django ----- 模板2

tags

for css

<ul>
{% for user in user_list %}
    <li>{{ user.name }}</li>
{% endfor %}      #結束
</ul>

for...emptyhtml

<ul>
{% for user in user_list %}
    <li>{{ user.name }}</li>
{% empty %}
    <li>空空如也</li>
{% endfor %}
</ul>

if,elif 和elsepython

{% if user_list %}
  用戶人數:{{ user_list|length }}
{% elif black_list %}
  黑名單數:{{ black_list|length }}
{% else %}
  沒有用戶
{% endif %}

也能夠有if 和 elsedjango

{% if user_list|length > 5 %}
  七座豪華SUV
{% else %}
    黃包車
{% endif %}

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

母版和繼承

1.母版spa

  就是一個普通的HTML文件,提取多個頁面的公共部分減小代碼量  修改十分方便code

  [注:除了公共部分,母版對應子頁面須要更改的地方用{% block page-main%}內容{%endvlock} htm

      ]blog

2.繼承(使用)繼承

    在子頁面中

      {% entends "base.html"%}

      {% block page-mian%}

        修改內容

      {%endblock%}

    

    注意:還會有個小問題,

      就是邊側那裏, 按鈕是死的,這就須要,在html 按鈕輸入那裏,  class = {% block pub_active%}active{%endblock%}

      子頁面也須要加上

3.注意事項:
    1.把{% extends 'base.html'%}
    2.修改的內容寫在block中,寫在外面不顯示
    3.{% extends name%} name應該是變量或者是字符串 繼承母版的名字
    4.母版中定義多個block塊, 通常還有 js 塊和css塊

 

4.組件
    1.就是一小段HTML代碼 多個頁面都用到的內容 nav.html
    2.在任意的模版中使用
    {% include "nav.html" %}

5.靜態文件相關
    1.{% load staticfiles %}
    2.{% static 'css文件路徑' %}
      還有第二種方法: {%get_static_prefix%}~~~文件路徑

      

6. 靜態文件相關
    {% load static %}
    
    {% static 'css/pub.css' %} —— 》 去settings拿STATIC_URL,和css/pub.css拼接
    —— 》 /static/css/pub.css

    {% get_static_prefix %} —— 》 去settings拿STATIC_URL
      {% load static %}

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

      或者

       

      {% load static %}
      {% get_static_prefix as STATIC_PREFIX %}

      <img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
      <img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />

      

 

    {% get_static_prefix %}css/pub.css

7. 自定義simple_tag和inclusion_tag

    1. 在app下建立templatetags的python包
    2. 在templatetags建立py文件 ——》 mytags.py
    3. 在mytags寫代碼
      from django import template
      register = template.Library()

      @register.filter(name='dsb')
      def add_sb(value,arg):
      return ....

      @register.simple_tag
      def add_sb(arg1,arg2,*args,**kwargs):
      return ....

      @register.inclusion_tag('show_li.html')       def show_li(n):       return {'num': range(1, n + 1)}8. 在模板中使用       {% load mytags %}       {{ 變量|dsb:'canshu' }}       {% add_sb '' '' %}       {% show_li 5 %}

相關文章
相關標籤/搜索