django template

django_template 知识点总结

模板有三个知识点

变量
标签
过滤器

变量

  • 变量的形式是:, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量。
  • 使用dot(.)能够访问变量的属性
  • 当模板引擎碰到dot的时候,查找的顺序是什么样子呢?

    • 字典查找,例如:foo[“var1”]
    • 属性查找,例如:foo.bar
    • 方法查找,例如:foo.bar()
    • list-index查找,例如:foo[bar]

注意:方法查找比一般的查找要复杂一些
(1)如果调用方法期间,方法抛出一个异常,那么异常将会产生,除非异常对象带有一个属性silent_variable_failure,
如果这个值是True,那么将会返回一个空字串。
(2)方法调用仅仅对那些没有参数的方法才会生效
(3)一些方法会产生副作用,所以系统允许方法设置一个属性alters_data,如果值为True,那么将不能够调用
其设置方法是:

1
2
3
4
5
def sensitive_function(self):

***

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