django 模板中的 % include % vs % extends %

Posted

技术标签:

【中文标题】django 模板中的 % include % vs % extends %【英文标题】:% include % vs % extends % in django templatesdjango 模板中的 % include % vs % extends % 【发布时间】:2011-02-21 06:20:52 【问题描述】:

什么时候特别扩展模板,什么时候使用 include ?是否包含与用户个人资料部分(例如我们网站一角的关于我)之类的内容有任何用途?

【问题讨论】:

【参考方案1】:

扩展允许您替换父模板中的块(例如“内容”),而不是包含构建页面的部分(例如“页眉”和“页脚”)。这允许您拥有一个包含完整布局的模板,并且您只需通过替换块来“插入”另一个模板的内容。

如果在所有页面上都使用了用户配置文件,您可能希望将其放入您的基本模板中,该模板由其他人扩展或包含在基本模板中。如果您只希望用户配置文件出现在很少的页面上,您也可以将其包含在这些模板中。 如果用户配置文件除了在几个页面上是相同的,请将其放在一个块内的基本模板中,然后可以在需要不同配置文件的那些模板中替换它。

【讨论】:

关于扩展/阻止/包含的最佳总结【参考方案2】:

了解 django template inheretance。

扩展某种“包含”父模板,然后可以覆盖其中的一部分以实现不同的功能。

Include 在当前上下文中进行简单的包含渲染模板。

【讨论】:

这已经改变,因为上面的链接似乎没有给出示例或解释继承。 我想这可能是新的link【参考方案3】:

extends 创建“父子关系”。在扩展的情况下,有可能覆盖父功能。而 include 只是呈现 html 响应。

【讨论】:

以上是关于django 模板中的 % include % vs % extends %的主要内容,如果未能解决你的问题,请参考以下文章

将对象发送到Django中{%include%}标记中的子模板

django模板语言中的extends,block和include

django模板语言中的extends,block和include

Django 模板中的 OR 条件

django下模板的包含和继承

Django的学习--- M与V