14
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Django モデルをスクリプトから使用する

Last updated at Posted at 2019-06-30

以下のような場面で Django モデルをアプリ外で使用することがあったので方法をまとめます。

  • 初期データ(or サンプルデータ)をまとめて作成する
  • 定期的に外部からデータを取得して, Django モデルとして DB に Insert する

Requirements

  • Python 3.6
  • django==2.2.2
  • django-extensions==2.1.9
  • pip

手順

1. django-extensions をインストール

$ pip install django-extensions

2. <project name>/settings.pyINSTALLED_APPSdjango-extensions を追加


INSTALLED_APPS = [
    ...

    'django_extensions',
]

3. スクリプトを配置するディレクトリを作成

Django プロジェクト直下に scripts という名前で作成します。

$ mkdir scripts

作成場所と名前が異なると動作しないので気をつけてください。

4. スクリプト作成

scripts ディレクトリ直下に任意の名前で作成します。

$ tree
.
├── <project name>
├── db.sqlite3
├── <app name>
├── manage.py
└── scripts
    ├── <script file name>.py
    ├── batch.py                    # example
    └── create_sample.py            # example

run という名前のメソッドが実行されるので、run メソッドを用意してください。


from <app name>.models import <model class name>

def run():
    ...

5. スクリプト実行

Django プロジェクト直下から以下のコマンドを実行します。

$ python manage.py runscript <script file name>

runscript の後に指定するファイル名には .py は不要です。

おわりに

django-extensions には Django をより便利に使うための機能が他にもたくさん用意されているので、気になる方はドキュメントを見てみてください。

14
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?