2017-06-06 6 views
-2

pycharmの使用中にdjangoコンテキストで任意のスクリプトを実行するにはどうすればいいですか?pycharmからdjangoコンテキストでスクリプトを実行するには

djangoコンテキストでarbirtaryスクリプトを実行すると、バックグラウンドタスクの開発やアドホッククエリの実行が容易になります。標準的な答えは、カスタムコマンドにスクリプトを追加することですが、私はそのワークフローに慣れていないので、このように公開するつもりがない場合は不要な手順です。

私はこのテクニックをStackOverflowのどこにも見つけることができないので、これは質問と回答の投稿です。私はDjangoを学ぶ3時間目に答えがほしいと思っていました。

答えて

0

私はちょうどdjangoを使い始めました。より良い方法があるかもしれませんが、最終的にセロリに送られるいくつかのタスクを開発しています。開発中に、それらを短時間でdjangoのコンテキストで実行すると便利です。私はこれを行うにはpycharm

を使用します。

は、実行したいスクリプトを標準のPythonの実行環境を設定し、スクリプトを作ります。 環境変数DJANGO_SETTINGS_MODULEを追加し、それをsettings.pyのpythonインポートパスに設定します。例えば、あなたはのsettings.py場合は、ディレクトリと呼ばれるmyappのである: DJANGO_SETTINGS_MODULEは= myapp.settings

は、作業ディレクトリ、プロジェクトのルートは「追加コンテンツのルーツ」チェックさ&「ソースルートを追加する」のチェックボックスを残す します。

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

を、今、あなたは

if __name__ == "__main__": 

を使用することができますし、オフにして実行している:

は、スクリプトでは、先頭に次の2行を追加します。

またはテストなどを実行します。

それはその後、Djangoのコンテキストを必要とするスクリプトを実行するのは簡単です:

PYTHONPATH=${PYTHONPATH}:. DJANGO_SETTINGS_MODULE=project.settings python dir1/dir2/myscript.py 

実行をその通常のDjangoのルートディレクトリから。

クレジット:Stavros Korokithakis https://www.stavros.io/投稿者:https://www.stavros.io/posts/standalone-django-scripts-definitive-guide/

関連する問題