用于捕获传出django页面中的html错误(或其他错误)的应用程序。

django-output-validator的Python项目详细描述


此项目不再处于活动开发阶段,可能无法与django的现代版本一起使用。主要原因是1)我找不到任何适用于html5的健壮命令行验证器,2)我很少担心HTML5验证,因为我对规范和它的作者感到沮丧,他们特意让工具作者的生活变得困难,例如bug 12561

最近一个目标类似的包是:https://github.com/peterbe/django-html-validator

此应用程序验证由 你的Django项目。这只用于开发。

安装

  • 运行setup.py将包安装到python路径中。

  • 将“输出验证程序”添加到已安装的应用程序设置中。

  • 如果您已从中删除"django.template.loaders.app_directories.Loader"。 你的模板加载程序,需要将“模板”文件夹添加到 模板目录设置。

  • 插入中间件 "output_validator.middleware.ValidatorMiddleware" 在中间件列表的开头(这意味着它将得到 响应对象在所有其他对象之后)。一定是在 每一个做后处理的中间件,但不能在 gzip,因为它不能处理gzip格式的html。(我只是禁用了gzip 用于开发的中间件)

  • 更改url conf以包含验证器的url。你需要 这一行插入了:

    (r'^validator/', include('output_validator.urls'))
    
  • 添加设置以告诉应用程序在何处查找“验证” 用于验证的可执行文件。这是一本小型词典 以及相应的验证程序,允许将此应用程序扩展到 任何其他生成的内容:

    OUTPUT_VALIDATOR_VALIDATORS = {
      'text/html': '/usr/bin/validate',
      'application/xml+xhtml': '/usr/bin/validate',
    }
    

    我通常为这个弹出的可执行文件使用一个小包装器 失败时的一条消息-下面的消息对gnome有效 (如果安装了通知发送程序):

    #!/bin/sh
    validate "$1" || {
        notify-send "Validation failed";
    }
    
  • 最后,运行django管理脚本来设置数据库表:

    ./manage.py --settings="yourproject.settings" syncdb
    

    或者,如果您使用南方:

    ./manage.py --settings="yourproject.settings" migrate output_validator
    
  • (可选)设置以下设置:

    • output_validator_ignore_path-这是一个路径前缀列表 将被忽略。例如,如果您的管理员位于/admin/ 您可以使用以下命令忽略管理员中的任何错误:

      OUTPUT_VALIDATOR_IGNORE_PATHS = [
          '/admin/',
      ]
      

用法

浏览开发中的任何页面时,将验证所有HTML。如果 它失败了,会被记录下来。你可以看到所有的失败 “http://localhost:8000/validator/”(假设本地开发和url conf 以上建议)。修复旧故障后,使用应用程序删除它们。

更改日志

版本1.5-2010-12-01

  • 重新标记为django输出验证器并正确打包。

    如果你使用以前的版本,你应该删除旧的 “validator_validationfailure”表(假设它没有任何数据 当然需要)。然后阅读自述文件中的安装说明 并更新相关设置的名称/值。

  • 修复了请求对象的隐藏(现在使用repr)。这是倒退 与现有数据不兼容(但无论如何我们正在使用新表)。

版本1.4-2008-04-28

  • 根据django中的更改,将max length更改为max_length。
  • 更正说明(感谢Gary Wilson)
  • 修正了折旧警告(感谢gary wilson)

版本1.3-2007-11-05

  • 为Django的Unicodisation更新。

    这是一个向后不相容的变化。

    这个问题是由于你过去可以任意存储 文本字段中的二进制数据,这是不可能的。因此,我是 对任何pickle对象使用base64编码。我还没写升级版 数据库的脚本(因为我个人将失败页面的列表保存到 零)。如果你是从P升级Rebug版本,您现有的任何版本 ValidationFailure对象将损坏(“请求”和“响应”数据 将丢失)。要么在升级之前处理错误,要么编写 某种转换脚本:-)

版本1.2-2007-04-18

  • 修复了未设置settings.validator_app_ignore_路径时出现的错误
  • 添加了停止记录重复故障的逻辑

版本1.1-2005-12-14

  • 添加了可选的验证器应用程序忽略路径设置。
  • 添加了对mod_python处理程序的支持-感谢“nesh”。
  • 添加了setup.py脚本。

版本1.0-2005-11-19

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将Java小程序转换为应用程序   音频数据格式和文件格式Java声音   java如何使用jsoup维护变量cookie和会话?   您能否使用类似于Java中python关键字args的概念来最小化访问器方法的数量?   JavaSpring引导HTTPS和重定向   如何反转直角三角形(Java)   JavaPowerMockito:拦截所有静态方法   java Vaadin TouchKit基本主题问题   java如何指定文件的路径。要在其文件系统中动态加载的类文件?   java Google Play Services Unity   java MyBatis SQL Builder类,如%   java无法访问Internet Explorer中的小程序   java如何计算2d数组中的行之间的差异?   在GridBagLayout中调用SetContraints时发生java NullPointerException   java同步锁和独立线程:Android   泛型我能让这个java pulk()方法更安全吗?   java为火车线上的所有车站创建距离地图   java在素数阶循环群中查找元素   java正在查找什么类型的类