Djangoでのtemplatesの使用

4791 ワード

1、templatesテンプレートファイルを配置する
1、templates        ,        ,        ,       templates
2、    :
    1、           ,    html  ,        views   ,            
    2、           ,         ,       views        
    3、       templates  ,         
      :1、 setting TEMPLATES   
     :'DIRS':[os.path.join(BASE_DIR,'templates')],
        2、      templates     ,                  
      :templates    --mark Directory  as---template Folder
              
    4、    template    ,       

2、テンプレート構文
1、変数
1、     views   ,       ,          
2、     :{{   }}      {}
3、  :                ,      ,     

2.文法
1、.         
      :   .   
2、.         
      :   .         ()
3、   .     (list,tuple...)   ,      ,          
      :  .       python :  [  ]
4、   .        ,    key    
      :  .key      python :  [key]

3、forサイクル
  :      {% endif %}

1、形式1:
{% for     in     %}
       
{% endfor %}

2、フォーマット2:
{% for     in    %}
       
{% empty %}
          ,       
{% endfor %}

3、forloopサイクルのカウンタ
forloop.first           
forloop.last             
forloop.counter  1    
forloop.counter0     0    
forloop.revcounter   1    ,    ,        
forloop.revcounter0  0    ,    ,        

4、判断文
1、形式1:
{% if      %}
                
{% endif %}

2、フォーマット2:
{% if      %}
                
    {% else %}
               2
{% endif %}

3、書式3
{% if    1 %}
          1     1
    {% elif     2 %}
              2     2
    {% else %}
               3
{% endif %}

4、フォーマット4:二つの値が等しいかどうかを判断する
{% ifequal value1 value2 %}
      value1  value2     
{% endifequal %}
  : value1 value2   ,            

5、フォーマット5:二つの値が等しいかどうかを判断する
{% ifnotequal value1 value2 %}
      value   value2     
{% endifnotequal %}

5、比較演算子
>     
<     
>=      
<=      
==    (      )
!=     
**                ,   {% %}

6、注釈:
{#                   :ctrl + / #}

{% comment %}
               :ctrl+shift+/
{% endcomment %}


7、その他
1、加算/減算
  :  {{ value|add:  }}  value  
  :  {{ value|add: }}  value - 

2、乗算/除算演算
  :{% widthratio value      %}
        value *   /  
   {% widthratio value    1 %}
   {% widthratio value 1    %}

3、ある数を割り切るかどうか
  :{{ value|divisbleby:  }}  value      
  :    
{% for student in allStudent %}
    {% if forloop.counter0|divisibleby:2 %}
        
  • {{ student.s_name }}
  • {% else %}
  • {{ student.s_name }}
  • {% endif %} {% endfor %}

    4、大文字と小文字の変換
         :{{ value|lower }}
         :{{ value|upper }}
    

    5、文字列のつづり
         :{{   |join:'     '}}
    

    8、エスケープ文字
      :     ,  views             html      ,      html      ,      html    
    

    ラベルを有効にする
       autoescape
                HTML   
    {% autoescape on %}
        {{ strHtml }}
    {% endautoescape %}
               HTML   
    {% autoescape off %}
        {{ strHtml }}
    {% endautoescape %}
    

    9、テンプレートの継承
                ,         css/html/js
    

    1、継承方法
    1、       base.html,              
    2、       index.html,        {% extends 'base.heml'%},            css/html/js
    

    2、block
          block        ,                 ,              
    

    1、親に穴を掘る
                   :
    {% block      %}
    
    {% ednblock%}
    

    2、サブクラスに穴を埋める
    {% block      %}
            
    {% endblock %}
    

    3、ピットは親テンプレートの内容を保持する
              {{ block.super }}
     :{% block head %}
            {{ block.super }}
            

    {% ednblock %}

    に注意

    3、思想
    1、ゼロにする
          html block        ,                  
    

    2、ゼロにする
          html include   html     ,          html
        html        html
    {% include 'head.html' %}
    {% include 'banner.html' %}
    {% include 'foot.html' %}
    

    10、テンプレートの簡単なロード原理
           
    def loadTem(request):
        1、       views   
        template = loader.get_template('loadTem.html')
        2、      ,    html      
        htmlData = template.render(context = {'content':'  '})
        3、        ,      html        
        return HttpResponse(htmlData)