我的意思是我理解这些模板是针对设计师和其他不那么精通代码的人,但对于开发人员来说,我觉得模板语言只是一个麻烦。我需要重新学习如何做非常简单的事情,比如迭代我传递给模板的字典或列表,它甚至看起来都不是很好。我仍然无法像我期望的那样使整个“点”符号工作(例如,for {循环中的{{mydict.dictkey}}不起作用:S - 我可能会将此视为一个单独的问题) ,我不明白为什么在模板系统中只使用python代码是不可能的。特别是,我觉得如果模板很简单,那么需要在这些模板中使用的python代码级别并不比当前的模板语言复杂。所以这些设计师偷看学习那么多python会比学习Django模板语言更麻烦(并且你可以使用基本python而不是DTL的知识更多的地方)并且附加的优势将是那些人已经知道python会在熟悉的领域中拥有所有常用的语法和功能,并且可以开始使用。
我错过了什么吗?如果是这样的话,我请求django noob,并希望你能够启发我当前系统的许多优点。但是否则,对其他模板系统的任何建议可能更像我正在寻找的东西?
答案 0 :(得分:10)
大多数人为有限的模板语言提供的原因是他们不希望将应用程序的业务逻辑与其表示混合(这与MVC哲学不兼容;使用Django我相信你了解这一点的好处)。
丹尼尔格林菲尔德写了an article a few days ago explaining why he likes "stupid template languages",许多人写了回复(见Planet Python过去几天)。如果您阅读了Daniel写的内容以及其他人如何回应它,您将会了解允许模板语言使用Python的一些论据。
答案 1 :(得分:2)
不要忘记您不仅限于Django的模板语言。您可以在视图函数中自由使用您喜欢的任何模板系统。但是,您想要创建从视图函数返回的HTML很好。 Python世界中有许多模板实现:选择一个更适合你的实现,并使用它。
答案 2 :(得分:1)
分离关注点。
Designer设计。开发人员做开发。模板由设计师编写。
设计和开发是独立的,不同的工作领域通常由不同的人处理。
我想如果一个人是开发人员并且他们的配偶是设计师,那么在python中使用模板代码会很有效。否则,让每个人都做好自己的工作,干预最少。
答案 3 :(得分:0)
Django模板不仅仅使用Python代码,原因与Django使用MVC范例相同:
没有特别的原因
(即:任何人都使用MVC的原因相同,原因只是某些人更喜欢这种严格的哲学模式。)
一般来说,如果你不喜欢这样的话,我建议你避免使用Django,因为Django人不会改变这种方法。然而,您也可以做一些愚蠢的事情(因为它与所选软件的哲学相矛盾),比如将所有标记和其他任何内容放入“视图”文件中,将Django从其“MVC”转变为(或“MTV”)范式大致是其他一切(一个无聊但直截了当的疙瘩)。