프로젝트 뼈대 만들기 💀

jurin·2021년 6월 21일
0
  • 프로젝트에 필요한 디렉토리 및 파일을 구성
  • 설정 파일을 셋팅
  • 기본 테이블 생성
  • 관리자 계정 슈퍼유저 생성

프로젝트가 만들어지면 그 하위에 애플리케이션 디렉토리 및 파일을 구성한다. 장고는 이를 위한 장고 쉘 커맨드를 제공한다.

최종 디렉토리 체계

이 외에도 templates, static, logs 등의 디렉토리가 필요하다.

>django-admin startproject mysite // mysite라는 프로젝트 생성
>python manage.py startapp polls  // polls라는 애플리케이션 생성
>notepad settings.py 		  // 설정 파일을 확인 및 수정
>python manage.py migrate 	  // 데이터베이스에 기본 테이블 생성
>python manage.py runserver 	  // 현재까지 작업을 개발용 웹 서버로 확인

프로젝트 생성

mysite 프로젝트 생성

(venv) C:\Users\User\PycharmProjects\django_backend>django-admin startproject mysite

하위 mysite 디렉토리 : 프로젝트 디렉토리
상위 mysite 디렉토리 : 프로젝트 관련 디렉토리/파일을 모으는 역할만 하는 디렉토리

상위 mysite 디렉토리는 혼동을 피하기 위해 ch3라고 변경

(venv) C:\Users\User\PycharmProjects\django_backend>move mysite ch3
        1개의 디렉터리를 이동했습니다.

애플리케이션 생성

(venv) C:\Users\User\PycharmProjects\django_backend\ch3>python manage.py startapp polls

프로젝트 설정 파일 변경

settings.py 파일은 프로젝트의 전반적인 사항들을 설정해주는 곳으로, 루트 디렉토리를 포함한 각종 디렉토리 위치, 로그의 형식, 프로젝트에 포함된 애플리케이션의 이름 등이 지정되어 있다.

1. ALLOWED_HOSTS 항목 지정

장고는 DEBUG=True이면 개발 모드로, False이면 운영 모드로 인식한다. 운영 모드인 경우는 ALLOWED_HOSTS에 반드시 서버의 IP나 도메인을 지정해야 하고, 개발 모드일 경우 지정하지 않아도 [ 'localhost', '127.0.0.1' ] 로 간주한다.

2. 프로젝트에 포함되는 애플리케이션들은 모두 설정 파일에 등록되어야 한다. (polls)

애플리케이션 모델명이 polls만 등록해도 되지만 애플리케이션의 설정 클래스로 등록하는 것이 더 정확하다.

INSTALLED_APPS = [
	// 생략
    'polls.apps.PollsConfig', // 추가
]

3. 프로젝트에 사용할 DB 엔진

장고는 디폴트로 SQLige3 DB 엔진을 사용하도록 설정되어 있다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

4. 타임존 지정

최초에는 세계표준시(UTC)로 되어 있는데 한국 시간으로 변경한다.

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asiz/Seoul'

기본 테이블 생성

변경 사항을 DB에 반영해주는 migrate를 실행한다.

(venv) C:\Users\User\PycharmProjects\django_backend\ch3>python manage.py migrate

DB 테이블을 생성하진 않았지만 장고가 미리 정의해둔 사용자 및 그룹 테이블 등을 만들어주기 위해 프로젝트 개발 시작 시점에 이 명령을 실행하는 것이다.

지금까지의 작업 확인

확인을 위해 웹 서버를 실행하고, 웹 서버에 접속해본다.

(venv) C:\Users\User\PycharmProjects\django_backend\ch3>python manage.py runserver 0.0.0
.0:8000

명령 입력 시 자신의 서버에 맞는 IP 주소와 포트번호를 입력하면 된다. 0.0.0.0이란 IP 주소의 의미는 현재 명령을 실행 중인 서버의 IP 주소가 무엇으로 설정되어 있더라도 그와는 무관하게 웹 접속 요청을 받겠다는 의미이다.

즉, 웹 브라우저의 주소창에서는 runserver를 실행중인 서버의 실제 IP 주소를 입력하면 된다.

http://127.0.0.1:8000/admin 접속

admin 페이지 접속 시 계속 오류가 생겨서 설정 파일에서 INSTALLED_APPS에서 polls로 바꿔주니까 해결됐다.

슈퍼 계정 생성하기

python manage.py createsuperuser 명령으로 생성 후 로그인

장고에서 만들어준 Users와 Groups 테이블이 생성된 것을 확인할 수 있다.





출처: Django로 배우는 파이썬 웹 프로그래밍(기초) - 김석훈님

profile
anaooauc1236@naver.com

0개의 댓글