django模板使用心得

时间:2022-08-13 19:08:34
 
      1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量。
      2.使用dot(.)能够访问变量的属性
      3.当模板引擎碰到dot的时候,查找的顺序是什么样子呢?
              a.字典查找,例如:foo["var1"]
              b.属性查找,例如:foo.bar
              c.方法查找,例如:foo.bar()
              d.list-index查找,例如foo[bar]
注意:方法查找比一般的查找要复杂一些

(1)如果调用方法期间,方法抛出一个异常,那么异常将会产生,除非异常对象带有一个属性silent_variable_failure,

如果这个值是True,那么将会返回一个空字串。

(2)方法调用仅仅对那些没有参数的方法才会生效

(3)一些方法会产生副作用,所以系统允许方法设置一个属性
alters_data,如果值为True,那么将不能够调用

其设置方法是:

def sensitive_function(self):

#函数内容

sensitive_function.alters_data = True
      4.如果模板中使用的某个变量不存在,那么模板系统将使用setting.py中 变量 TEMPLATE_STRING_IF_INVALID的值进行替代,在默认情况下,该变量的值是''。

二、过滤器
      1.可以通过过滤器来修改变量的显示,过滤器的形式是:{{ variable | filter}},管道符号'|'代表使用过滤器
      2.过滤器能够采用链式的方式使用,例如:{{ text | escape | linebreaks }}
      3.过滤器还可以带参数,例如: {{ bio|truncatewords:30}}
      4.过滤器的参数中如果带有空格,那么需要用引号引起来,例如:{{ list | join : ", "}}
      5.django中30个内建的过滤器
              (1)add   
                      使用形式为:{{ value | add: "2"}}
                      意义:将value的值增加2
              (2)addslashes
                      使用形式为:{{ value | addslashes }}
                      意义:在value中的引号前增加反斜线
              (3)capfirst
                      使用形式为:{{ value | capfirst }}
                      意义:value的第一个字符转化成大写形式
              (4)cut
                        使用形式为:{{ value | cut:arg}}, 例如,如果value是“String with spaces” arg是""那么输出是"Stringwithspaces"
                        意义:从给定value中删除所有arg的值
              (5)date
                        使用形式为::
                                (a) {{ value | date:"D d M Y"}},例如,如果value是一个datetime对象(datetime.datetime.now())那么输出将是字符串"Wed 09Jan 2008"
                                (b) {{ value | date}},这种形式没有格式化字符串,这时候,格式化字符串会自动采用DATE_FORMAT所设置的形式。
                        意义:将日期格式数据按照给定的格式输出
              (6)default