14

Djangoアプリのモデルを使用してDBと対話するスクリプトを作成したいと思います。ただし、このスクリプトをコマンドラインまたはcron経由で実行できるようにしたいと思います。これを許可するには、何をインポートする必要がありますか?

4

3 に答える 3

15

Django環境変数を設定する必要があります。これらは、プロジェクトがどこにあるか、および設定モジュールの名前が何であるかをPythonに通知します(設定モジュールのプロジェクト名はオプションです)。

import os

os.environ['PYTHONPATH'] = '/path/to/myproject'
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

これで、モデルにアクセスできるようになります。

from myproject.models import MyModel

all_my_models = MyModel.objects.all()
于 2008-12-20T08:18:44.153 に答える
13

推奨される方法は、カスタム コマンドを追加してから、他のコマンドとして実行することdjango-adminです ( と混同しないでくださいdjango.contrib.admin)。

./manage.py mycustomcommand --customarg

DJANGO_SETTINGS_MODULE の設定は、カスタム コマンドが実行できない場合にのみ使用してください。

于 2008-12-20T12:06:39.667 に答える
5

特定のニーズによっては、django-command-extensionsを使用すると時間を少し節約できる場合があります。環境変数をいじらずにスクリプトをそのまま実行するには、次のように入力します。

./manage.py runscript path/to/my/script.py

django-command-extensionsには、スクリプトをcronジョブとして自動化するためのコマンドもあります。これはあなたがやりたいと言ったことです。

あなたがもっと基本的なタイプの人なら、cronジョブなどから実行される「スタンドアロン」djangoスクリプトを作成する方法を概説したこの非常に詳細な投稿をチェックしてください。

于 2008-12-20T08:39:53.360 に答える