Django Documentation의 Tutorial을 직접 따라해보겠습니다.
python, Django, python 가상환경인 miniconda가 설치되어 있다는 가정하에 포스팅을 진행하겠습니다.


1. Creating Project

먼저, project의 code를 저장하고 싶은 dirctory로 이동해야 합니다.

바탕화면에 'django_tutorial_following'이라는 폴더를 만들어 이동하겠습니다.
(이때, 폴더의 이름을 'django'혹은 'test'처럼 built-in python이나 django의 component 명과 겹치지 않게 만들어줘야 합니다.)

그리고 다음과 같은 코드를 터미널에서 실행하겠습니다.

$ django-admin startproject mysite

그럼 'django_tutorial_following'이라는 폴더에 'mysite'이라는 폴더가 생성됩니다.

startproject가 무엇을 만들어 냈는지 순서대로 살펴보겠습니다.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
  1. mysite
    Django project를 감싸는 root directory입니다. 폴더명은 어느 것을 하던 상관없습니다.
  2. manage.py
    Django 프로젝트와 다양한 방법으로 상호작용하게해주는 command-line utillity입니다.
  3. inner mysite/ directory
    실질적인 Python Package입니다.
    inner mysite의 이름은 import할 때 사용할 Python Package 이름입니다.
  4. mysite/__init__.py
    mysite라는 디렉토리가 python Package라는 것을 Python에게 알리는 비어있는 파일입니다.
  5. mysite/settings.py
    이 Django 프로젝트에 대한 setting/configuration입니다.
  6. mysite/urls.py
    이 Django 프로젝트의 URL 선언들입니다. Django로 작성된 사이트의 목차라고 생각하면 됩니다.
  7. mysite/wsgi.py
    현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점입니다.

2. The development server

Django 프로젝트가 제대로 동작하는지 확인해보겠습니다. mysite 디렉토리로 이동하고, 다음 명령어를 실행하겠습니다.

$ python manage.py runserver

그러면 다음과 같은 결과를 확인할 수 있습니다.

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

October 14, 2019 - 06:45:47
Django version 2.2.6, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Django 개발 서버를 시작했습니다. 절대로 개발 서버를 운영 환경에서 사용하면 안되며 개발 서버는 오직 개발 목적으로만 사용하여야 합니다.

참고

runserver의 default는 내부 IP의 8000번 포트입니다. 포트를 바꾸고 싶다면 다음과 같이 명령어를 실행하면 됩니다.

$ python manage.py runserver 8080

그리고 서버의 IP를 변경하려면 다음과 같이 실행하면 됩니다.

$ python manage.py runserver 0:8000