リンターとフォーマッター
これまでの章で、Django の基本的な機能を学びました。
この章では、より実践的なアプリケーションを作成するに先立ち、コードの品質を高めるためのツールを紹介します。
Ruff (opens in a new tab)は、リンター・フォーマッター・インポートの整理など豊富な機能を持ち、かつ動作が非常に高速なので、かつて別々に使用していたflake8、black、isortを置き換えることができます。
uv add -G dev ruff-G dev オプションは、開発環境でのみインストールすることを指定します。
本番環境で必要がない際に、このオプションを指定します。
Ruff をインストールしたら、以下のコマンドで実行できます。
uv run ruff .リンター
リンターは、コードの品質をチェックするツールです。
たとえば、変数名が正しくない、インデントが正しくない、などの問題を検出することができます。 また、コードの品質を高めるためのヒントを表示することもできます。
フォーマッター
フォーマッターは、コードのフォーマットを統一するツールです。
たとえば、" と ' を統一する、インデントを統一する、などの機能があります。
インポートの整理
Python では、インポートの書き方には視認性を高めるためのいくつかのルールがあります。
たとえば、順番は以下のようにします。 それぞれのグループの間には空行を入れ、グループ内のインポートはアルファベット順にします。
- 標準ライブラリのインポート
- サードパーティライブラリのインポート
- 自作ライブラリのインポート
しかし、このようなルールを守るのは面倒です。 そこで、Ruff がインポートの整理を自動化してくれます。
VS Code の設定
VS Code で Python を書く場合、それぞれのツールに対応する拡張機能をインストールすることで、たとえば保存時に自動でフォーマットを実行するなどの設定ができます。
拡張機能はすでにインストールしているはずです。
「表示」→「コマンドパレット」を選択し、settings.json と入力して「基本設定:ユーザー設定を開く(JSON)」を選択します。
開いたファイルに以下の内容を追記します。
{
// ...
"[python]": {
"editor.defaultFormatter": "ms-python.ruff-formatter",
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
"source.fixAll": "explicit"
}
},
"isort.args": ["--profile", "ruff"],
"[html][django-html][handlebars][hbs][mustache][jinja][jinja-html][nj][njk][nunjucks][twig]": {
"editor.defaultFormatter": "monosans.djlint"
}
// ...
}これで、保存時に自動でフォーマットを実行するようになるはずです。