用pylint-django插件来检查Django项目

直接用Pylint来检查Django,容易产生误报。 例如,对一个全新生成的Django项目django_example,就会报两条C0103applicationurlpatterns命名不合法。

对此,有个Pylint插件pylint-django,可以解决这个问题。

安装

pip install pylint-django

运行效果

通过django-admin startproject django_example创建一个新的Django项目,然后开始pylint检查。

$ pylint django_example/
************* Module django_example.urls
django_example/urls.py:19:0: C0103: Constant name "urlpatterns" doesn't conform to UPPER_CASE naming style (invalid-name)
************* Module django_example.wsgi
django_example/wsgi.py:16:0: C0103: Constant name "application" doesn't conform to UPPER_CASE naming style (invalid-name)

------------------------------------------------------------------
Your code has been rated at 9.33/10

仅拿到9.33分。 然而,这是Django的特殊语法,不应该被扣分或忽略。

通过添加--load-plugins pylint_django参数,可以使用[pylint_django]插件:

$ pylint --load-plugins pylint_django django_example/

-------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 9.33/10, +0.67)

效果显著,符合预期。

配置

为避免每次都需要输入--load-plugins pylint_django,也为了配合pytestpytest-pylint插件进行检查, 推荐在项目根目录下的.pylintrc中做配置。

[MASTER]
load-plugins=pylint_django

类似插件

除了Django外,Flask当然也有同类问题。 同理,有一个pylint-flask插件可以解决这个问题。


相关笔记