1. 程式人生 > >Django---模版層

Django---模版層

---https://www.cnblogs.com/liuqingzheng/articles/9509806.html

一、處理瀏覽器轉義字串的兩種方式

  1、{{ str|safe }}

  2、在後臺view.py      from django.utils.safestring import mark_safe

   reslut = '<a>sxs</a>'

   return mark_safe(result)

 

二、自定義標籤和過濾器

1、在settings中的INSTALLED_APPS配置當前app,不然django無法找到自定義的simple_tag.

2、在app中建立templatetags模組(模組名只能是templatetags)

3、建立任意 .py 檔案,如:my_tags.py

from  django  import  template from  django.utils.safestring  import  mark_safe   register  =  template.Library()   
#register的名字是固定的,不可改變     @register . filter def  filter_multi(v1,v2):      return   v1  *  v2 <br> @register .simple_tag def  simple_tag_multi(v1,v2):
     return   v1  *  v2 <br> @register .simple_tag def  my_input( id ,arg):      result  =  "<input type='text' id='%s' class='%s' />"  % ( id ,arg,)      return  mark_safe(result)

4、在使用自定義simple_tag和filter的html檔案中匯入之前建立的 my_tags.py

1 { %  load my_tags  % } 

5、使用simple_tag和filter(如何呼叫)

 
-------------------------------.html

{% load xxx %}  
      
# num=12
{{ num|filter_multi:2 }} #24
 
{{ num|filter_multi:"[22,333,4444]" }}
 
{% simple_tag_multi 2 5 %}  引數不限,但不能放在if for語句中
{% simple_tag_multi num 5 %}

注意:filter可以用在if等語句後,simple_tag不可以

{% if num|filter_multi:30 > 100 %}
    {{ num|filter_multi:30 }}
{% endif %}