djangoのModelをコンソールプログラムで使用する方法
pythonのWebアプリケーションフレームワークのdjangoでは、RDBの表をModelというクラスの形で表現できる。
Modelを使用すると、いちいちSQLを書かなくてもRDB上のデータのCRUD処理が簡単に行えるので便利だ。
このModelクラスをバッチ処理などのコンソールプログラムから使用したくても、単純に、目的のModelクラスをインポートするだけでは使用できない。
しかし、少し設定をすれば、コンソールプログラムからModelクラスを使用できることが最近分かった。
それには、コンソールプログラムの先頭に次のような記述を書きくわえればよい。
import sys, os sys.path.append("djangoプロジェクトの配置場所") os.environ["DJANGO_SETTINGS_MODULE"] = "プロジェクト名.settings" import プロジェクト名.モデルの場所 as models
ここで、
- djangoのプロジェクトのインストールの場所は「/home/user/django/project」
- settings.pyの場所はデフォルトの「/home/user/django/project/settings.py」
- Modelクラスの記述ファイルの場所は「/home/user/django/project/app/models.py」
とすると、下のように記述すればよい。
import sys, os sys.path.append("/home/user/django/") os.environ["DJANGO_SETTINGS_MODULE"] = "project.settings" import project.app.models as models
この記述を先頭に書きくわえると、この場合ではmodels.ModelクラスXXXという形で、「home/user/django/project/app/models.py」にて定義しているModelクラスをコンソールプログラムから使用することができる。
参考リンク:
ソースページ:Using Django in command-line scripts
ソースページを紹介していたブログ:Pyro Memo