文件名称:扩展模板系统-libmodbus源码解析
文件大小:7.37MB
文件格式:PDF
更新时间:2024-07-14 01:47:20
8.6扩展模板系统 现在,我们了解了一些模板系统的内部细节,下面来看如何扩展这个系统。对模板系统的定制,基本上是自 定义模板标签和(或)过滤器。虽然 Django 模板语言自带了很多内建的标签和过滤器,但是有时也需要自己 创建一些标签和过滤器,满足自己的需求。幸好,这并不难。 8.6.1代码布局 自定义的模板标签和过滤器必须放在一个 Django 应用中。如果与现有应用有关,可以放在现有应用中;否 则,应该专门创建一个应用存放。应用中应该有个 templatetags目录,与 models.py、views.py等文件放在 同一级。如果没有这个目录,创建一个,别忘了 __init__.py文件,这样才能保证所在目录是一个 Python 包。 添加这个模块之后,要重启服务器方能在模板中使用自定义的标签或过滤器。自定义的标签和过滤器在 tem- platetags目录里的一个模块中。 模块文件的名称是加载标签所用的名称,所以要小心选择,别与其他应用中的自定义标签和过滤器冲突了。 假如自定义的标签(过滤器)放在 review_extras.py文件中,应用的布局可能是下面这样: reviews/ __init__.py models.py templatetags/ __init__.py review_extras.py views.py 在模板中则这样使用: {% load review_extras %} 包含自定义标签的应用必须在 INSTALLED_APPS中列出,这样 {% load %}标签才能起作用。 背后的运作方式 举再多的例子也不如阅读源码,学习 Django 是如何定义默认的过滤器和标签的。过滤器和标 签分别在 django/template/defaultfilters.py和 django/template/defaulttags.py文件中。 load标签的更多信息参阅文档。 120 - 第 8 章 高级模板技术