在 Django 中使用有效的 HTML 4.01 Strict

Posted

技术标签:

【中文标题】在 Django 中使用有效的 HTML 4.01 Strict【英文标题】:Using valid HTML 4.01 Strict with Django 【发布时间】:2011-01-24 16:35:25 【问题描述】:

我发现了一个类似的问题here,但我正在寻找更通用的解决方案。

现在,当 Django 为您生成任何类型的 html 时(这主要发生在生成表单时),它默认使用自关闭标签,即 <br /> 而不是 <br><br /> 是有效的 XHTML,我也认为是 HTML5,但它不是有效的 HTML4。

有什么干净的方法可以覆盖它吗?还是用 XHTML 或 HTML5 编写 django 站点更好?

【问题讨论】:

【参考方案1】:

您可以完全重写 django 为您输出 HTML 的方式。例如:对于表格,您可以:

使用属性“as_xxx”在使用表、p 或 li 的输出之间进行选择。 打印表单label by label,选择标签包装器。 使用widget 定义表单将如何打印到HTML。

当然,您需要新的表单来执行此操作,并且可以使用 Django 1.X。

【讨论】:

谢谢 - 这确实解决了问题的一部分,但还有其他领域(如 csrf 令牌)我必须单独解决 sigh 在 V1.2 之前,csrf token 不只是一个空字符串吗? 啊,我的错,你可能是在谈论 'django.middleware.csrf.CsrfResponseMiddleware' 的遗留方法【参考方案2】:

当 1.2 的开发开始时,有一个whole series of discussions,提出了一系列解决方案,但没有就一般的前进方式达成一致。

但请参阅 Simon Willison 的 Django-HTML project 了解一种可能的解决方案。

【讨论】:

嗯...谢谢。我阅读讨论越多,我发现的潜在陷阱就越多。毕竟我可能会坚持使用 XHTML 或 HTML5,因为这似乎是更简单的选择。

以上是关于在 Django 中使用有效的 HTML 4.01 Strict的主要内容,如果未能解决你的问题,请参考以下文章

html5与html 4.01的区别 doctype几种分类及其不同

HTML 4.01 与 HTML 5 download 属性之间的差异

HTML HTML 4.01 Transitional

HTML HTML 4.01严格

html HTML 4.01严格模板[已弃用]

html xHTML 4.01 Transitional