はじめに
Django玄人の皆さんにわざわざ説明するまでもないですが、Djangoでは簡単にカスタムコマンドを作成することができます!
$ python manage.py hoge
といった形です。 runserver
とか migrate
とか makemigrations
とかの部分ですね
今回は hoge
のあとにパラメータを追加したいなぁと思い実装したのでメモと共有
イメージ
$ python manage.py hoge 1 2
環境
- Python 3.5.1
- Django==1.11
実装
$ django-admin.py startapp app
で app
という名前のアプリを作成している前提で実装します
app/
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
と言ったような構成になってるかと思います。変更していなければ
$ mkdir -p app/management/commands
$ cd app/management/commands
$ touch __init__.py
$ touch plus.py # 任意の名前「plus」がカスタムコマンド名になります
hoge.py
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
args = '<param_1 param_2 ...>'
help = 'パラメータの合計を表示するコマンドです'
def add_arguments(self, parser):
parser.add_argument('parameters', nargs='+', type=int)
def handle(self, *args, **options):
print(sum(options['parameters']))
上記はとりあえずの適当なやつなのでパラメータの加算をして表示するだけのコマンドです。
$ python manage.py plus 1 2 3 4
10
といったような感じになるはずです!