5. Django 프로젝트 (1)
장고 프로젝트 시작
장고의 기본 골격을 만들기 위한 스크립트를 실행한다.
장고에서는 디렉토리와 파일명이 매우 중요하다. 파일명을 마음대로 변경해서는 안되며
다른 곳으로 옮겨도 안된다. 장고는 중요한 것들을 찾을 수 있게 특정한 구조를 유지해야 한다.
모든 작업은 가상환경 안에서 해야 한다. 명령 실행 창에 (myvenv)가 보이면 가상환경이 활성화 된 것이다.
가상환경이 실행되어 있지 않다면,
1 | myvenv\Scripts\activate |
위의 명령을 실행하여 가상환경을 실행시켜 준다.
1 | dt-admin.py startproject mysite . | cs |
위의 명령에서 .(점) 은 현재 디렉토리에 장고를 설치하라고 스크립트에 알려주기 때문에 반드시 작성해야한다
dt-admin.py 명령은 스크립트로 디렉토리와 파일들을 생성한다. 스크립트 실행 후에는 아래와 같이 새로 만들어진 디렉토리 구조를 볼 수 있다.
1 2 3 4 5 6 7 | dt ├───manage.py └───mysite settings.py urls.py wsgi.py __init__.py | cs |
위에서 manage.py는 스크립트이고, 사이트 관리를 도와주는 역할을 한다. 이 스크립트로 다른 설치 작업 없이
컴퓨터에서 웹 서버 시작이 가능하다.
settings.py는 웹사이트 설정이 있는 파일이다.
urls.py 파일은 urlresolver가 사용하는 패턴 목록을 포함하고 있다.
앞에서 편지 배달부가 어느 곳에 편지를 배달해야 하는지 판단하기 위한 패턴 목록이다.
설정 변경
mysite/settings.py를 에디터를 통해 파일을 열고
TIME_ZONE을 찾아서 'UTC' 를 다음과 같이 'Asia/Seoul'로 변환한다.
mysite/settings.py
1 | TIME_ZONE = 'Asia/Seoul' | cs |
그리고 정적파일 경로를 추가한다.(다음에 CSS파일 경로를 추가하기 위해)
파일의 끝에 STATIC_URL항목 아래에
mysite/settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
다음과 같이 추가한다.
그리고 ALLOWED_HOSTS가 비어있으면 애플리케이션 배포 시 PythonAnywhere의 호스트 이름과 일치하지 않으므로 다음과 같이 변경한다.
mysite/settings.py
1 | ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com'] | cs |
데이터베이스 설정하기
이미 mysite/settings.py 파일 안에 설치 되어있다.
mysite/settings.py
1 2 3 4 5 6 | DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } | cs |
만들기 위한 프로젝트에 데이터베이스를 생성하기 위해 콘솔 창에서 아래 코드를 실행해야 한다.
1 | python manage.py migrate | cs |
이 명령을 실행하기 위해서는 dt디렉토리 안에 있는 manage.py가 필요하다.
모든 설정이 끝났고 프로젝트 디렉토리(dt)에 manage.py 파일이 있어야 하고 콘솔에서
1 | python manage.py ruserver | cs |
위의 명령을 실행하여 웹 서버를 바로 시작한다.
작동하는지 확인하기 위해 브라우저를 열어 http://127.0.0.1:8000/ 을 입력하면 된다.
다음과 같은 화면이 보이면 웹 서버를 활용하여 첫 웹 사이트가 구축된 것이다.
이 상태에서는 웹 서버가 들어오는 요청을 수신 대기하기 위해 지속적으로 실행 중이어서 다른 명령은 실행되지 않는다.
웹 서버가 실행되는 동안 추가 명령을 입력하려면 새 터미널 창을 열고 virtualenv를 활성화 시켜야 한다.
웹 서버를 중지하려면 실행중인 창으로 다시 전환하여 Ctrl + C를 누르면 서버 중지가 된다.