Django有HTML助手吗?

时间:2008-09-14 16:37:33

标签: html django

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

获取网址
{% url mapper.views.foo %}

但这只会给我一个URL而不是HTML代码来创建链接。 Django有没有类似于Rails的link_to帮助器?我发现django-helpers但是因为这是一个常见的事情,我认为Django会内置一些东西。

6 个答案:

答案 0 :(得分:26)

不,不。

关于Rails的内置JavaScript助手,

James Bennett回答了similar question一段时间。

真的 不太可能Django内置'helper'功能。如果我理解正确,原因与Django保持事物loosely coupled的核心理念有关。内置了这种辅助功能可以将Django与特定的JavaScript库或(在您的情况下)html文档类型相结合。

EG。如果/最终实现HTML 5并且Django正在生成HTML 4或XHTML标记,会发生什么?

话虽如此,Django的模板框架非常灵活,write your own tags/filters做出你想做的事情并不是非常困难。我自己大部分都是一名设计师,而且我已经能够将几个自定义标签放在一起,就像一个魅力。

答案 1 :(得分:21)

正如其他人所暗示的那样,帮助者的目的不是帮助那些不知道如何编写HTML的开发人员。目的是封装常用功能 - 因此您不需要编写相同的内容一千次 - 并提供一个位置来编辑整个应用程序中使用的常用HTML。

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

  

EG。如果/当HTML 5是什么时会发生什么   终于实现了,Django就是   生成HTML 4或XHTML标记?

实现HTML 5时会发生同样的事情,并且所有模板都是用重复的HTML编写的,除了更容易之外。

其他帖子已经回答了问题,链接到custom template tags上的文档;您可以使用标签和过滤器来构建自己的标签和过滤器,但不,没有内置的。

答案 2 :(得分:2)

它看起来不像是内置的,但这里有几个片段。看起来创建这些助手很容易:

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

答案 3 :(得分:1)

这是list of all template tags and filters built into Django。 Django核心没有像Rails那样多的HTML帮助程序,因为Django贡献者认为Web开发人员非常了解HTML。正如saturdaypalace所说,将AJAX助手添加到Django是不太可能的,因为它会导致Django与特定的JavaScript库耦合。

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

答案 4 :(得分:0)

我敢打赌,如果对常见的html 有任何同意,那么也会有帮助模块,只是为了完整性(或者因为其他人拥有它)。 ;)

除此之外,Django模板系统主要面向HTML人员,他们已经知道如何编写pimga标签,并且不需要任何帮助器为此。另一方面是Python开发人员,他们编写代码而不关心他们放在上下文中的变量是否被divspan包围(关注点分离的完美示例范例)。如果你需要加入这两个世界,你可以自己做(或寻找其他代码)。

答案 5 :(得分:-1)

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