上一节模糊的分析了一下template的过程。
这节也模糊的分析一下关键字与过滤的过程。
在分析模版内容时候,构造语法问题树的过程初始化代码中有
def add_library(self, lib):
self.tags.update(lib.tags)
self.filters.update(lib.filters)
# global list of libraries to load by default for a new parser
builtins = []
for lib in builtins:
self.add_library(lib)
加载全局lib。
在base.py文件底部有
def import_library(taglib_module):
try:
mod = import_module(taglib_module)
except ImportError as e:
if is_library_missing(taglib_module):
return None
else:
raise InvalidTemplateLibrary("ImportError raised loading %s: %s" %
(taglib_module, e))
try:
return mod.register
except AttributeError:
raise InvalidTemplateLibrary("Template library %s does not have "