Django 쉘에서 Python 스크립트 실행 방법
Django 쉘에서 Python 스크립트 실행 방법
Django 쉘에서 Python 스크립트를 실행하는 방법은 두 가지가 있습니다.
execfile() 함수 사용
첫 번째 방법은 execfile()
함수를 사용하는 것입니다. 이 함수는 스크립트 파일을 로드하고 해당 파일 내의 코드를 실행합니다. 다음은 예제입니다.
# my_script.py라는 스크립트가 있다고 가정합니다.
from django.core.management import execute_from_command_line
def main():
print("스크립트 실행 중입니다.")
if __name__ == "__main__":
execute_from_command_line(['django-admin', 'execfile', 'my_script.py'])
위 코드는 다음과 같이 실행됩니다.
python manage.py execfile my_script.py
IPython의 run 매직 명령 사용
# IPython 쉘에서 실행합니다.
from IPython.display import clear_output
# my_script.py라는 스크립트가 있다고 가정합니다.
clear_output()
run_lines('%run my_script.py')
In [1]: clear_output()
Out[1]: ()
In [2]: %run my_script.py
스크립트 실행 중입니다.
주의 사항
- 스크립트를 실행하기 전에 Django 쉘이 현재 프로젝트의 가상 환경에서 활성화되었는지 확인하십시오.
- 스크립트가 Django 애플리케이션에 사용할 수 있는 모듈을 가져올 수 있도록 프로젝트 경로를 sys.path에 추가해야 할 수도 있습니다.
예제 코드: Django 쉘에서 Python 스크립트 실행
my_script.py
def my_function():
print("내 함수가 실행되었습니다!")
if __name__ == "__main__":
my_function()
from django.core.management import execute_from_command_line
if __name__ == "__main__":
execute_from_command_line(['django-admin', 'execfile', 'my_script.py'])
from IPython.display import clear_output
clear_output()
run_lines('%run my_script.py')
실행 방법
다음 명령 중 하나를 사용하여 Django 쉘을 실행합니다.
python manage.py shell
예상 출력
내 함수가 실행되었습니다!
설명
- 이 예제는
my_function()
이라는 함수를 정의하고__name__ == "__main__"
구문을 사용하여 해당 함수를 스크립트가 직접 실행되는 경우에만 실행하도록 합니다. execfile()
함수는django-admin
명령줄 유틸리티를 사용하여 실행되며,my_script.py
파일의 내용을 Django 쉘 컨텍스트에서 실행합니다.- IPython의
run
매직 명령은 IPython 쉘에서 실행되며,my_script.py
파일의 내용을 Django 쉘 컨텍스트에서 실행합니다.
Django 쉘에서 Python 스크립트 실행: 대체 방법
os.system() 함수 사용
os.system()
함수를 사용하여 시스템 셸에서 명령을 실행할 수 있습니다. 이를 사용하여 Python 스크립트를 실행할 수도 있습니다. 다음은 예제입니다.
import os
def main():
os.system('python my_script.py')
if __name__ == "__main__":
main()
subprocess 모듈 사용
subprocess
모듈은 더 많은 제어 기능을 제공하는 시스템 셸 명령을 실행하는 또 다른 방법입니다. 다음은 예제입니다.
import subprocess
def main():
subprocess.run(['python', 'my_script.py'])
if __name__ == "__main__":
main()
Django 관리 명령 만들기
Django 관리 명령을 만들어 Python 스크립트를 실행할 수 있습니다. 이것은 스크립트를 실행하는 더 명확하고 유지 관리 가능한 방법입니다. 다음은 예제입니다.
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = '내 스크립트를 실행합니다.'
def handle(self, *args, **options):
exec(open('my_script.py').read())
if __name__ == "__main__":
manage.from_command_line(sys.argv)
- 위의 대체 방법은 모두 Django 쉘에서 Python 스크립트를 실행하는 데 사용할 수 있지만, 각 방법마다 고유한 장단점이 있습니다.
os.system()
함수는 가장 간단하지만 가장 적은 제어 기능을 제공합니다.subprocess
모듈은 더 많은 제어 기능을 제공하지만os.system()
함수만큼 사용하기 쉽지 않습니다.- Django 관리 명령을 만드는 것은 가장 복잡하지만 스크립트를 실행하는 가장 명확하고 유지 관리 가능한 방법입니다.
python django django-shell