代码之家  ›  专栏  ›  技术社区  ›  ejunker

Django有HTML助手吗?

  •  23
  • ejunker  · 技术社区  · 17 年前

    Django是否有任何模板标记来生成通用HTML标记?例如,我知道我可以使用

    {% url mapper.views.foo %}
    

    但这只提供了URL,而没有提供创建链接的HTML代码。Django是否有类似于Rails的link_to helper的功能?我发现 django-helpers

    6 回复  |  直到 17 年前
        1
  •  26
  •   saturdayplace    17 年前

    不,没有。

    James Bennett 回答 similar question 不久前,关于Rails的内置JavaScript助手。

    它是 Django不太可能内置“helper”功能。如果我理解正确的话,原因与Django保存东西的核心哲学有关 loosely coupled

    如果最终实现了HTML5,而Django正在生成HTML4或XHTML标记,会发生什么情况?

    话虽如此,Django的模板框架是非常灵活的,使用它并不困难 write your own tags/filters 那是你想要的。我自己基本上是一名设计师,我已经能够把一些定制标签组合在一起,就像一个符咒。

        2
  •  24
  •   Whatcould    16 年前

    helpers的目的并不是像这里其他人暗示的那样,帮助那些不知道如何编写HTML的开发人员。其目的是封装通用功能——这样你就不需要编写上千次相同的东西——并提供一个地方来编辑整个应用程序中使用的通用HTML。

    这与模板和SSI很有用的原因相同——不是因为人们不知道如何在页眉和页脚中编写HTML,而是有时您只想编写一次。

    当HTML 5被激活时会发生什么 最终实现了Django 生成HTML4或XHTML标记?

    实现HTML5时会发生同样的事情,所有模板都是用重复的HTML编写的,只是简单得多。

    custom template tags ; 你可以使用标签和过滤器来构建你自己的,但是没有内置的。

        3
  •  2
  •   John Boker    17 年前

    看起来它们不是内置的,但这里有几个片段。看起来创建这些帮助程序非常容易:

    http://www.djangosnippets.org/snippets/441/

        4
  •  1
  •   zuber    17 年前

    这是一个 list of all template tags and filters built into Django . Django core没有Rails那么多的HTML助手,因为Django贡献者认为web开发人员非常了解HTML。正如saturdaypalace所说,AJAX助手不太可能添加到Django中,因为这将导致Django与特定的JavaScript库耦合。

    这很容易理解 write your own template tags 在Django中(通常只需要定义一个函数,类似于Rails)。您可以在一两天内在Django中重新实现大多数Rails助手。

        5
  •  0
  •   zgoda    17 年前

    我打赌如果有人同意 ,也会有helpers模块,只是为了完整性(或者因为其他人有)

    除此之外,Django模板系统主要是为那些已经知道如何编写HTML的人设计的 p img a 标签,不需要任何 助手 为此。另一方面,还有Python开发人员,他们编写代码,并不关心他们放在上下文中的变量是否由 div 或者 span 关注点分离

        6
  •  -1
  •   Ali    17 年前

    这不会直接回答这个问题,但为什么不使用 <a href="{% url mapper.views.foo %}">foo</a> 那么在模板中呢?