用于捕获 outgoing Django 页面中的 HTML 错误(或其他错误)的应用程序。
项目描述
此项目已不再处于积极开发状态,可能无法与现代版本的 Django 一起使用。 主要原因有:1)我无法找到任何健壮的 HTML5 命令行验证器;2)由于我对规范及其作者的挫败感,我很少担心 HTML5 验证,这些规范和作者尽力让工具作者的生活变得困难,例如 bug 12561
具有类似目标的较新包是: https://github.com/peterbe/django-html-validator
此应用程序验证您的 Django 项目生成的所有 HTML(或潜在的其他数据)。此应用程序仅应在开发中使用。
安装
运行 setup.py 将包安装到您的 python 路径。
将“output_validator”添加到您的 INSTALLED_APPS 设置中。
如果您已从您的 TEMPLATE_LOADERS 中删除 "django.template.loaders.app_directories.Loader",则需要将“templates”文件夹添加到您的 TEMPLATE_DIRS 设置中。
将中间件 "output_validator.middleware.ValidatorMiddleware" 插入到中间件列表的早期位置(这意味着它将在其他所有内容之后获取响应对象)。它必须在执行后处理的每个中间件之后,但不能在 GZip 之后,因为它无法处理压缩的 HTML。(我在开发中禁用了 GZip 中间件)
修改您的 URL 配置以包含验证器的 URL。您需要在某处插入此行
(r'^validator/', include('output_validator.urls'))
为应用程序添加一个设置,指定验证所使用的“validate”可执行文件的路径。这是一个mimetypes和相应验证器的字典,允许此应用程序扩展到任何其他生成的内容
OUTPUT_VALIDATOR_VALIDATORS = { 'text/html': '/usr/bin/validate', 'application/xml+xhtml': '/usr/bin/validate', }
我通常为此可执行文件使用一个小包装器,当它失败时弹出消息 - 以下适用于GNOME(如果您已安装notify-send程序)
#!/bin/sh validate "$1" || { notify-send "Validation failed"; }
最后,运行django admin脚本来设置数据库表
./manage.py --settings="yourproject.settings" syncdb
或者,如果您使用South
./manage.py --settings="yourproject.settings" migrate output_validator
可选地设置以下设置
OUTPUT_VALIDATOR_IGNORE_PATHS - 这是一个将被忽略的路径前缀列表。例如,如果您在/admin/下有管理员,您可以使用此选项忽略管理员中的任何错误
OUTPUT_VALIDATOR_IGNORE_PATHS = [ '/admin/', ]
用法
在开发过程中浏览您的任何页面时,所有HTML都将进行验证。如果失败,它将被记录。您可以在“http://localhost:8000/validator/”查看所有失败(假设本地开发和上述URL conf)。
变更日志
版本 1.5 - 2010-12-01
更名为django-output-validator并正确打包。
如果您使用的是先前版本,应删除旧的“validator_validationfailure”表(当然,假设它没有您需要的任何数据)。然后按照README中的安装说明进行操作,并更新相关设置的名称/值。
修复了请求对象的存储(现在使用repr)。这与现有数据不兼容(但我们仍然使用新表)。
版本 1.4 - 2008-04-28
将maxlength更改为max_length,遵循Django的更改。
修正说明(感谢Gary Wilson)
修复了弃用警告(感谢Gary Wilson)
版本 1.3 - 2007-11-05
为Django的Unicode化更新。
这是一个不兼容的更改。
问题是您曾经能够在TextField中存储任意二进制数据,现在不再可能。因此,我使用base64编码任何序列化的对象。我没有编写数据库升级脚本(因为我个人将失败页面的列表保持为零)。如果您从先前版本升级,您现有的ValidationFailure对象将损坏(“request”和“response”数据将丢失)。在升级之前处理错误,或者编写某种类型的转换脚本:-)
版本 1.2 - 2007-04-18
修复了当settings.VALIDATOR_APP_IGNORE_PATHS没有设置时出现的错误
添加了防止重复失败记录的逻辑
版本 1.1 - 2005-12-14
添加了可选的VALIDATOR_APP_IGNORE_PATHS设置。
添加了对mod_python处理器的支持 - 感谢‘nesh’。
添加了setup.py脚本。
版本 1.0 - 2005-11-19
首次发布
项目详情
下载文件
下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。