跳转到主要内容

用于捕获 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

  • 首次发布

项目详情


下载文件

下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-output-validator-1.5.tar.gz (10.0 kB 查看哈希值)

上传时间

由以下支持