使用Django模板创建可读的HTML

16 投票
6 回答
5327 浏览
提问于 2025-04-16 09:14

在使用Django进行HTML模板制作时,怎样才能创建出好的HTML标记格式呢?

我想利用内容块,但在不同的模板中,这些内容块的缩进层级却不一样。我想知道怎么才能让这些内容块的缩进看起来像是手动写的HTML那样。

我在换行方面也遇到了同样的问题;我可以把所有的块都挤在一起,这样HTML看起来会好一些,但模板就变得难以维护了。

我想问的是,如何才能用Django的模板系统创建出漂亮的HTML标记呢?

到目前为止,我对大家的回答感到惊讶。我发现格式良好的HTML有助于编写相应的CSS和JavaScript,同时也让后续添加内容变得更容易。

6 个回答

0

我很佩服你对生成的HTML这么在意——我只关心模板是否整洁易读!不过,针对你的问题,你有没有考虑过中间件呢?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

然后可以使用Tidy这个Python模块来重新格式化HTML。

http://pypi.python.org/pypi/PythonTidy/

4

你可以像我一样重写NodeList的渲染方法。你可以查看我提问时提供的可运行代码:

在Django模板中实现正确的缩进(不使用猴子补丁)?

16

Pyevolve的Christian S. Perone提供了你所需要的解决方案。他使用中间件来拦截HTTPResponse对象,并通过BeautifulSoup进行处理。

不过,我想你的站点可能会稍微影响性能。因此,我建议在将这个中间件应用到正式网站之前,先进行一些性能测试。

撰写回答