2月 25
このエントリをはてなブックマークに登録 Yahoo!ブックマークに登録

たいていのアプリにバッチは付き物なのですが、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です。

関連性のあるエントリ:

  1. Djangoで集計クエリ(1.1以降でannotateを使用)
  2. Djangoで同じモデルのフィールド同士によるフィルタを実行する方法
  3. DjangoのフォームでChoiceFieldのchoicesを動的に指定する
  4. Djangoのテンプレートでカスタムフィルタを使う
  5. 受信したメールをパイプでPythonに渡して本文読んだり添付を保存したり

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
preload preload preload