PythonでDjangoを使ったバッチ処理

2010-02-25
このエントリーをはてなブックマークに追加

たいていのアプリにバッチは付き物なのですが、DjangoにはRailsでいうところのscript/runnerがありません。

まぁPythonでバッチ書いてそれを叩けばいいのですが、settingsの値とか、モデルデータとか、やっぱり共有したいわけですよ。

# -*- coding: utf-8 -*-
import sys
import os

sys.path.append(“C:/works/Python”)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘hogepj.settings’

from hogepj.app.models import *

_hoge = Hoge.objects.all()
for item in _hoge:
    print item.name

sys.path.appendに書くのはプロジェクトがあるフォルダです。プロジェクトフォルダは含みません。Pythonというフォルダのなかにhogepjというプロジェクトフォルダがある、という前提です。

Railsだと「Railsアプリのバッチを実行する」な感じだったのに対して、Djangoだと「バッチをDjangoアプリの一部として実行する」って感じでしょうか。

環境はPython2.5、Django1.1.1です。

Tags: ,