块/继承/扩展的好处

2024-05-15 16:13:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在用django构建一个应用程序。我团队中的一些人认为我应该在模板中使用include,而不是遵循blocks/extends范式。他们认为:

  • 继承对于未来的维护者来说是太多的逻辑了
  • 包括更容易遵循
  • 我们不应该把未来的维护局限于“django程序员”

我真的不想破坏我的应用程序的模板,所以我试着提出一些令人信服的理由(对于非django用户)来解释为什么继承真的是前进的方向。我想听听大家对这个问题的看法。你知道吗

我已经想出了几个理由:

  • 更干燥。确保样板html结构只需要在一个位置定义;大大降低了模板不同步的风险

  • 保留属于模板中、模板中和视图外的内容;例如:

    <title>{% block title %}My Website{% endblock %}</title>

    <title>{{ pagetitle }}</title>

    这样,前端维护人员就可以更好地控制前端,而不必深入研究后端视图

  • 前端编码人员必须熟悉从基扩展/覆盖默认值的继承概念;请考虑以下css:

    .nav {
      color: blue;
    }
    
    .nav.active {
      color: purple;
    }
    

你有什么好的理由可以加入其中吗?你知道吗


Tags: django视图模板应用程序include人员title维护者
1条回答
网友
1楼 · 发布于 2024-05-15 16:13:20

使用继承可以更容易地(至少IMHO)创建主控形状基本.html模板,并让所有其他页面extends它。这使得所有的布局/样式都要在一个文件中指定,其余的只是以标准化的方式使用带有idclass的标记。你知道吗

最好记住,extends(以及include)的参数可以是变量。我们的templates/base.html是一行:

{% extends base_template %}

其中base_template是在主上下文处理器中设置的。这与一个简单的管理小部件一起改变了session.base_template,使得我们的设计人员可以创建多个布局并通过单击在它们之间切换。她绝对喜欢。你知道吗

相关问题 更多 >