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