Django 프로젝트는 django-admin 명령을 통해 자동 생성할 수 있습니다.
$ django-admin startproject myproject
django-admin
은 Django 프로젝트의 관리 작업을 위한 커맨드 라인 유틸리티입니다. 자세한 내용은 기회가 되면 다뤄보겠습니다
돌아와서 위 명령을 통해 현재 디렉토리에서 myproject라는 디렉토리가 생성되며 startproject를 통해 생성된 프로젝트 구조는 다음과 같습니다.
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
django-admin
과 동일한 작업을 수행하지만 작업할 프로젝트의 setting.py
파일을 DJANGO_SETTING_MODULE
환경변수로 세팅하는 역할도 합니다.django-admin
보다 manage.py
파일을 사용하는 것이 더 쉽습니다.__all__
변수를 설정할 수도 있습니다.setting.py
파일에는 Django 설치의 모든 구성이 포함되어 있습니다. ASGI(Asynchronous Server Gateway Interface)
란 비동기 웹서버와 애플리케이션을 위한 파이썬 표준 인터페이스입니다. WSGI(Web Server Gateway Interface)
란 동기 웹서버와 애플리케이션이 통신하기 위한 파이썬 표준 인터페이스입니다.ASGI와 WSGI에 대한 설명은 해당 아티클를 참고하길 바랍니다.
myproject 디렉토리에서 아래 명령어를 통해 서버를 구동할 수 있습니다.
$ python manage.py runserver
구동에 성공하면 명령줄에서 다음과 같은 출력을 보게 됩니다.
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
July 03, 2023 - 14:03:22
Django version 4.2.2, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
참고
경고문구 You have unapplied migrations~ 부분은 아직 데이터베이스 적용되지 않은 변경사항들이 있을 때 출력되는 문구로 현재는 무시해도 됩니다.
그리고 명령줄에 출력된 url을 웹브라우저 등에서 접속하면 해당 로켓 그림이 나오는 페이지가 뜨게 됩니다.
기본적으로, runserver 명령은 내부 IP의 8000번 포트로 개발서버를 띄우게 됩니다.
포트를 변경하려면 아래와 같이 명령어에 인수를 추가로 전달해주시면 됩니다.
$ python manage.py runserver 8080
서버의 IP도 다음과 같이 변경할 수 있습니다.
$ python manage.py runserver 0.0.0.0:8000