2

{block} 标签和 {include} 标签之间的主要区别是什么?我知道它们都用于模板继承,但是一个工作得更快还是允许更大的灵活性?

4

1 回答 1

3

{include}函数只是引用另一个模板文件,其内容应包含在输出中的该点。它与任何类型的继承无关,并且像 PHP 的include/require和函数调用之间的交叉一样工作,因为您可以传入参数并且变量可以具有本地范围。

{block}函数用于模板继承。虽然可以通过巧妙地使用子模板来模拟效果,但基本思想却大不相同。正如文档中所解释的,父模板可以有许多命名块,子模板可以覆盖其中的任何一个或全部,按名称引用它们,其余代码直接来自父模板。

一种思考方式是,{include}如果您想要将部分内容包含到多个页面结构中,那么模板继承会很有用,而如果您想要许多具有相似结构但在某些部分中具有不同内容的页面,则模板继承会更合适。当然,您可能想要两者兼而有之。

于 2013-01-13T21:00:10.553 回答