[Django] カスタムコマンドの使い方

Djangoでviewsを使わないでコマンドから直接プログラムを実行する方法について記載します。

カスタムコマンドファイル

アプリケーションにmanagementディレクトリを作ります。その中にcommandsディレクトリを作ります。ここがカスタムコマンドファイルを設置する場所になります。

sample.pyというカスタムコマンドファイルを作る場合、

appDir/management/commands/sample.py というパスになります。

まず、BaseCommandを読み込みます。

from django.core.management.base import BaseCommand

その他、使いたいものをインポートします。今回はdatetime, calender, Sampleモデルをインポートする例を記載しました。

class Command(BaseCommand): BaseCommandを継承するCommandクラスを作成します。

def handle(self, *args, **kwargs): を記載し、その下にプログラムを書いていきます。

カスタムコマンドファイルの実行

こちらはターミナルからファイル名を実行するだけです。 sample.pyの場合はsampleだけでOKです。

コンソールにメッセージを出力

カスタムコマンドではWebページで表示されないので、実行された結果などがわかりません。下記のようにコンソールに結果を表示させる記載をしておくと良いです。



Author: webmaster