所以我正在使用django构建一个应用程序。我团队中的一些人认为我应该在我的模板中使用包含而不是遵循块/扩展范例。他们认为:
我真的不想对我的应用程序的模板进行屠宰,所以我试图想出一些令人信服的理由(对于非django用户),为什么继承真的是前进的方向。我很想听到更多关于此的看法。
我已经提出了几个原因:
干得多。确保只需在一个地方定义样板html结构;模板失去同步的风险要小得多
保留属于模板,模板和视图之外的内容;例如:
<title>{% block title %}My Website{% endblock %}</title>
VS
<title>{{ pagetitle }}</title>
这使得前端维护者可以更好地控制前端,而无需深入研究后端视图
前端编码器必须熟悉从基础/覆盖默认值扩展的继承概念;考虑以下css:
.nav {
color: blue;
}
.nav.active {
color: purple;
}
你可以提出任何合理的理由吗?
答案 0 :(得分:0)
使用继承可以更轻松(至少恕我直言)创建一个主base.html模板,并让所有其他页面extends
。这样就可以在一个文件中指定所有布局/样式,其余的只是以标准化方式使用带有id
和class
的标记。
值得记住的是,extends
(以及include
)的参数可以是变量。我们的templates/base.html
是一行:
{% extends base_template %}
其中base_template
在我们的主上下文处理器中设置。这与改变session.base_template
的简单管理小部件一起,允许我们的设计师创建多个布局,并通过单击在它们之间切换。她非常喜欢它。