Django : python으로 웹서비스 개발하기(2) - Django 프로젝트 생성 및 구동하기

harry jang·2023년 7월 3일
0

Django

목록 보기
2/12
post-thumbnail

프로젝트 만들기

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
  • manage.py : 각 Django 프로젝트에서 자동 생성되는 파일. django-admin과 동일한 작업을 수행하지만 작업할 프로젝트의 setting.py파일을 DJANGO_SETTING_MODULE 환경변수로 세팅하는 역할도 합니다.
    일반적으로 단일 Django 프로젝트를 작업할 경우에는 django-admin보다 manage.py 파일을 사용하는 것이 더 쉽습니다.
  • myproject/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다. 이 디렉토리 내의 이름을 이용하여, 프로젝트의 어디서나 Python 패키지들을 임포트 할 수 있습니다.
  • myproject/__init__.py : 이 파일이 포함된 디렉토리를 패키지로 처리하도록 하기 위해 필요한 파일입니다. __init__.py 파일은 빈 파일일 수 있지만 패키지에 대한 초기화 코드를 실행하거나 __all__변수를 설정할 수도 있습니다.
  • myproject/settings.py : setting.py파일에는 Django 설치의 모든 구성이 포함되어 있습니다.
  • myproject/urls.py : Django 프로젝트의 URL 선언할 때 사용합니다.
  • myproject/asgi.py : 현재 프로젝트를 서비스하기 위한 ASGI-호환 웹 서버의 엔드포인트입니다. ASGI(Asynchronous Server Gateway Interface)란 비동기 웹서버와 애플리케이션을 위한 파이썬 표준 인터페이스입니다.
  • myproject/wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI-호환 웹 서버의 엔드포인트입니다. 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을 웹브라우저 등에서 접속하면 해당 로켓 그림이 나오는 페이지가 뜨게 됩니다.
main

포트 변경하기

기본적으로, runserver 명령은 내부 IP의 8000번 포트로 개발서버를 띄우게 됩니다.
포트를 변경하려면 아래와 같이 명령어에 인수를 추가로 전달해주시면 됩니다.

$ python manage.py runserver 8080

서버의 IP도 다음과 같이 변경할 수 있습니다.

$ python manage.py runserver 0.0.0.0:8000
profile
software engineer

0개의 댓글