在前一章中,你可能已经注意到我们在例子视图中返回文本的方式有点特别。也就是说,HTML 被直接硬编码在 Python 代码之中。
def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)
尽管这种技术便于解释视图是如何工作的,但直接将 HTML 硬编码到你的视图里却并不是一个好主意。让我们来看一下为什么:
对页面设计进行的任何改变都必须对 Python 代码进行相应的修改。站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多。
Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成。 设计者和 HTML/CSS 的编码人员不应该被要求去编辑 Python 的代码来完成他们的工作。
程序员编写 Python 代码和设计人员制作模板两项工作同时进行的效率是最高的,远胜于让一个人等待另一个人完成对某个既包含 Python 又包含 HTML 的文件的编辑工作。
基于这些原因,将页面的设计和 Python 的代码分离开会更干净简洁更容易维护。我们可以使用 Django的 模板系统 (Template System)来实现这种模式,这就是本章要具体讨论的问题。