帮助pylint理解django web框架的pylint插件

pylint-django的Python项目详细描述


Pylint django

https://travis-ci.org/pycqa/pylint-django.svg?branch=masterhttps://landscape.io/github/landscapeio/pylint-django/master/landscape.pnghttps://coveralls.io/repos/pycqa/pylint-django/badge.svghttps://img.shields.io/pypi/v/pylint-django.svg

关于

pylint django是一个用于改进代码的插件。 使用django分析代码时进行分析。它也被 浏览工具。

安装

要安装:

pip install pylint-django

警告: Pylint django 默认情况下不会安装 django ,因为 这会带来更多的麻烦, 参见讨论 。如果你愿意 要自动安装最新版本的django,请执行以下操作:

pip install pylint-django[with_django]

否则,请整理您的测试环境,并请不要报告问题 关于失踪的詹戈!

用法

确保pylint django已安装并在您的路径上,然后执行:

pylint --load-plugins pylint_django [..other options..] <path_to_your_sources>

浏览者

如果您已经安装了"浏览者",那么Pylint Django就已经安装了 作为依赖项安装,如果django是 检测到:

prospector [..other options..]

功能

  • 防止有关django生成的属性(如 model.objects views.request
  • 防止在使用 foreignkey 属性时出现警告("的实例 foreignkey没有<;x>;成员"。
  • 修复Pylint对模型类型和表单字段属性的知识
  • 验证 模型。 方法。
  • meta 表单和模型的信息类不会生成错误。
  • 标记modelform.meta中exclude属性的危险使用。

附加插件

pylint_django.checkers.db_performance 查找添加新的 模型字段和这些字段具有默认值。根据 django文档 这可能会导致性能损失,尤其是在大型表上。喜欢的方式 添加一个新的db列,因为它将立即创建 然后可能用所需的默认值填充表。

只有从子目录的最后一次迁移是小精灵!

默认情况下此插件被禁用!要启用它:

pylint --load-plugins pylint_django --load-plugins pylint_django.checkers.db_performance

已知问题

如果按外键模型的名称(字符串)引用外键模型,则pylint django可能不是 能够找到模型并报告问题,因为它不知道 此字段的类型为。如果您的 models.py 本身没有导入外键类 可能有一些导入问题(循环依赖关系)阻止引用 直接使用外键类,在这种情况下,pylint django不能做大量的工作。 如果只是为了方便而做的话,那么开发人员就要解决这个问题了。

贡献

如果您想添加您的姓名到 contributors.rst 文件中 合并请求时记入贷方。您还可以添加到 changelog.rst 文件,如果您愿意,尽管我们在合并时也会这样做。

测试

测试包的结构遵循pylint本身的结构。

它相当简单:创建一个以 func开头的模块 一个测试名称,并在其中插入一些代码。测试将运行pylint 针对这些模块。如果现在没有消息出现,那么 没关系,只要运行 scripts/test.sh 来检查它是否工作就可以了。

理想情况下,向文件中添加一些Pylint错误抑制消息以防止 虚假的警告,因为这些都是微小的模块,不是为了 做任何事都不需要完美。

可以使用预期的错误输出进行测试,例如,如果 添加新消息或只是接受Pylint应该发出的警告。 test_file_name.txt文件包含 格式 错误类型:行 编号:类名或空:详细错误文本的第一行

许可证

Pylint Django 在GPLV2许可下可用。

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

推荐PyPI第三方库


热门话题
java这种src与构建树时间戳的比较如何更快?   java如何在两个命令处理程序之间通信   java下拉框值更改   Java如何从另一个类中提取字段的值   无字段名的java Jackson序列化   java游戏循环和方法调用   java Spring Security permitAll()匹配器被忽略   java如何在一个方法中将数组中的int作为单独的int传递?   使用ArrayList在Java中实现同步队列   java JButton的操作侦听器在JTable中不工作   java中C++ OOP指针的技巧   java My regex搜索只打印出最后一个匹配项   java如何在Hadoop中序列化非常大的可写对象   spring Paypal JavaSDK支付执行问题   带有SPNEGO SSO的java Tomcat 6仍会提示输入登录名和密码   java HttpResponse主体正在更改   java如何在RxJava中实现链锁   为什么我需要java。lang.ClassNotFoundException:com。mysql。希杰。jdbc。mysqlconnectorjava8时的驱动程序。0.16.jar在类路径中?   java输入错误。即使在接受新输入后仍使用旧输入