2022.03.23 - Django manage.py
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)인데, 쉘에서 파라미터를 받을 수 있게해주는 코드이다.
댓글남기기