2010-07-12 3 views
2

Django 설정, 모델, 유틸리티 등을 사용하여 Python 스크립트 (Django 서버 응용 프로그램 내에서 실행되지 않는)를 작성하는 가장 좋은 방법은 무엇이므로 app 데이터베이스에서 작동 할 수있는 방법은 무엇입니까? 배치 프로세스?Scripting Django

EDIT 정말

감사

작동하지 않습니다 사용자 정의 AppCommands와 같은 솔루션 있도록하거나 Djando 페이지를 호출 나는 데이터베이스에 다소 복잡한 작업을 위해 다른 서버에서이를 사용할 필요가

답변

6

방법 중 하나를 호출하여 실행할 수 있습니다 (의 그것이/관리/명령/example.py은을 myApp에 저장된 가정 해 봅시다) 당신의 own management command를 만드는 것입니다. 다음과 같이 할 수 있습니다. 당신의 crontab :

python manage.py my_command 

또 다른 방법은 확실히 장고, 장고 프로젝트와 필요한 경우, 타사 앱이 PYTHONPATH에있는을 확인하는 것입니다. 그런 다음 몇 줄의 코드를 사용하여 데이터베이스와 ORM에 액세스 할 수 있습니다.

from django.core.management import setup_environ 
from my_project import settings 
setup_environ(settings) 

이제 예를 들어 다음과 같이 할 수 있습니다. 다음과 같은 작업을 수행하십시오.

from my_app.models import MyModel 
all_objects = MyModel.objects.all() 
+0

최신 버전의 장고에서는'setup_environ'이 사라졌습니다. – mlissner

2

setup_environ은 1.4 이후로 사용되지 않았습니다. 다음과 같이 사용할 수 있습니다.

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings' 
import django 
django.setup() 

다음 모델을 사용할 수 있습니다.

from my_app.models import MyModel 
all_objects = MyModel.objects.all() 
관련 문제