2022.03.23 - Django manage.py

최대 1 분 소요

Manage.py

  • Manage.py는 이름과 동일하게 Django 서비스 전반을 관리하는 스크립트다.
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Django_girls.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


#!/usr/bin/env python
import os
import sys
  • 맨 처음 시작 문구는 #!/usr/bin/env python으로 시작을 한다.
  • 리눅스에서 쉘스크립트를 사용할때도 저렇게 사용을 하는데 #!뒤에 경로에 있는 인터프리터를 사용해주라고 나타내는 것이다. 이를 Shebang이라고도 한다.
if __name__ == "__main__":
  • name 모듈의 이름이 저장되어 있는 변수인데, 파이썬의 경우 현재 이 스크립트 파일이 시작점인지 단순한 모듈인지 판단하기 위한 문구로 사용한다.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Django_girls.settings")
  • os.environ.setdefault는 DJANGO_SETTINGS_MODULE 장고 환경변수에 대한 디폴트 값을 설정하는 코드다.
try:
    from django.core.management import execute_from_command_line
except ImportError as exc:
    raise ImportError(
        "Couldn't import Django. Are you sure it's installed and "
        "available on your PYTHONPATH environment variable? Did you "
        "forget to activate a virtual environment?"
    ) from exc
execute_from_command_line(sys.argv)
  • Django.core.management에서 execute_from_command_line 함수를 가져오는 코드인데 제대로 가져오면 그냥 실행하고, 실패시 에러메시지를 송출해주는 역할을 한다.

  • 마지막 문구는 execute_from_command_line(sys.argv)인데, 쉘에서 파라미터를 받을 수 있게해주는 코드이다.

카테고리:

업데이트:

댓글남기기