때로는 쉘을 사용하는 것처럼 마치 장고 프로젝트 컨텍스트에서 파일을 실행하고 싶지만 텍스트 편집기를 사용할 때 편리합니다. 이것은 주로 무언가를 시도하거나보기, 테스트, 되풀이 작업 또는 관리 명령에 넣기 전에 일부 기능을 신속하게 프로토 타입하는 것입니다.Django 프로젝트 컨텍스트에서 임의의 스크립트를 어떻게 실행합니까?
나는 내 평 파일의 상단에이 줄을 부착 할 수 있습니다 알고는 장고의 컨텍스트에서 실행됩니다 : 나는 걸리는 관리 명령을 만들기 위해 쉬울 거라고 생각
import sys
sys.path.append('/location/of/projet')
from django.core.management import setup_environ
import settings
setup_environ(settings)
on 인자, 실행할 파이썬 모듈, Django 환경에서 실행합니다. 여기에 내가 쓴 'runmodule'명령입니다 :
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = "Runs an arbitrary module, in the Django environment, for quick prototyping of code that's too big for the shell."
def handle(self, *args, **options):
if not args:
return
module_name = args[0]
try:
__import__(module_name)
except ImportError:
print("Unable to import module %s. Check that is within Django's PYTHONPATH" % (module_name))
은 작동처럼이 보인다 - 나는 모듈에 몇 가지 코드를 부착하고,이 명령의 인수로 전달하고, 실행거야 수 있습니다, 예를 들어,
python manage.py runmodule myapp.trysomethingout
myapp/trysomethingout.py를 실행합니다. 이 작업을 수행하는 가장 좋은 방법입니까?
파이썬 스크립트에 if __name__ == "__main__"을 직접 넣을 수 있습니다 : os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "settings") – OriolJ