了解DJango模板系统

作为一个Web框架,Django需要一个便利的方式来动态地生成HTML,最常见的方式是依赖模板,模板中既包含了所希望HTML输出的静态部分,又有一些语法用来描述如何动态插入这些上下文内容。

Django可以配置一个或者多个模板引擎,如果不是使用模板可以是零。django把自己内建的后端当做自己的模板系统,称作为DTL,即Django模板语言。Jinpa2也是一个不错的选择,其模板语言来自第三方。

Django定义了标准的API来载入和渲染模板,与具体后端无关。载入包括根据指定的标识符来查找模板并进行处理,通常会将其编译到内存中进行表示。渲染意味着将上下文数据插入到模板中并返回到结果字符串。

由于历史的原因,模板引擎的支持与模板语言的实现都存在于django.template命名空间下。

模板引擎的配置:

TEMPLATES=[

            {

                        ‘BACKEND’:’django.template.backends.django.DjangoTemplates’,

                        ‘DIR’:[],

                        ‘APP_DIRS’:True,

                        ‘OPTIONS’:{

                        },

            }

]

dirs:这一个目录列表,来告诉引擎来从哪里寻找模板源文件,按顺序进行搜索。

app_dirsTrueFalse,告诉引擎在已经安装app目录下进行查找,每个模板后端定义了app_dirname属性,该值(默认为templates)作为子目录来,模板引擎在这个子目录下进行搜索。

options:是针对后端进行制定的配置。

还有一种不常见的情况,可能会配置同一后端的多个实例来传入不同的参数,你需要定义为此定义一个name

DjangoTemplates接收以下的OPTIONS选项:

autoescape:布尔值,默认为True,来控制HTML是否自动转义。

context_processors:上下文处理器。

debug:布尔值,是否开发debug模式,若为True,当在模板渲染过程中任何异常将会在错误页面显示详细的报告。

string_if_valid:输出为一个字符串,该模板系统应该使用 invalid(例如拼错)变量。

loaders:模板加载器,每个模板加载器知道如何从特定的源来导入模板,默认依赖DIRSAPP_DIRS的值。

file_charset:读取磁盘模板文件使用的字符集,默认为FILE_CHARSET

libraries:这是一个字典,这个被用于添加新的库,提供备选标签,标签库可以在{% load %}标记中传入相应的字典键值进行载入。

builtins:将模板标签库加入内建库中,无需调用{% load %}就可使用。

 

 

原文地址:https://www.cnblogs.com/baishoujing/p/7218435.html