웹을 공부하면서 알아가는 중’ 시리즈

[파이썬 웹프로그래밍] 프로젝트 뼈대 만들기

  • 0
  • 0
0
0

1. 프로젝트 생성


# mysite라는 프로젝트 만들기
django-admin startproject mysite

mysite 디렉토리가 최상위, 그 하위에 생김

상위 mysite 디렉토리(빨간색 박스)는 프로젝트 관련 디렉토리/파일을 모으는 역할을 하는 디렉토리

하위 mysite 디렉토리(노란색 박스)는 프로젝트 디렉토리

혼동할 수 있기에 ch3으로 변경


move mysite ch3

2. 애플리케이션 생성


ch3 > python manage.py startapp polls

3. 프로젝트 설정 파일 변경

settings.py

프로젝트의 전반적인 사항들을 설정해주는 곳

루트 디렉토리를 포함한 각종 디렉토리의 위치, 로그의 형식, 프로젝트에 포함된 애플리케이션의 이름 등이 지정

A. ALLOWED_HOSTS

  • DEBUG = True
    • 개발 모드
      • ALLOWED_HOSTS에 값을 지정하지 않아도 ['localhost', '127.0.0.1']로 간주함.
  • DEBUG = False
    • 운영 모드
      • ALLOWED_HOSTS에 반드시 서버의 IP나 도메인을 지정해야 함

DEBUG = True  
  
ALLOWED_HOSTS = []

B. 프로젝트에 포함되는 애플리케이션들은 모두 설정 파일에 등록

애플리케이션의 모듈명인 polls만 등록해도 되지만, 애플리케이션의 설정 클래스로 등록하는 것이 더 정확한 방법

polls 앱의 설정 클래스는 startapp polls 명령 시에 자동 생성된 apps.py 파일에 PollsConfig 라고 정의됨.


class PollsConfig(AppConfig):  
    default_auto_field = 'django.db.models.BigAutoField'  
    name = 'polls'
 

모듈 경로까지 포함하여 'polls.apps.PollsConfig' 라고 등록


INSTALLED_APPS = [  
    'django.contrib.admin',  
    'django.contrib.auth',  
    'django.contrib.contenttypes',  
     'django.contrib.sessions',  
    'django.contrib.messages',  
    'django.contrib.staticfiles',  
    'polls.apps.PollsConfig',  
]

C. 프로젝트에 사용할 데이터베이스 엔진

장고는 디폴트로 SQLite3 데이터베이스 엔진을 사용하도록 설정됨


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

D. 타임존 지정

세계표준시(UTC)를 한국 시간으로 변경


# TIME_ZONE = 'UTC'  
TIME_ZONE = 'Asia/Seoul'  
  
USE_I18N = True  
  
USE_L10N = True  
  
USE_TZ = True

일광절약시간제(Daylight Saving Time)을 자동으로 계산할 수 있도록 USE_TZ = True 설정을 권고

한국은 일광절약시간제를 사용하지 않으므로 Asia/Seoul 시간대만 사용하면 USE_TZ = False로 설정하는 게 더 편리함.

4. 기본 테이블 생성


# 데이터베이스에 변경사항이 있을 때 이를 반영해주는 명령
python manage.py migrate

장고는 모든 웹 프로젝트 개발 시 반드시 사용자와 그룹 테이블 등이 필요하다는 가정 하에 설계됨

테이블을 전혀 만들지 않았더라도, 사용자 및 그룹 테이블 등을 만들어주기 위해서 프로젝트 개발 시점에 이 명령을 실행

5. 웹 서버 실행하기

장고는 개발 과정 도중에 현재 상태를 확인해볼 수 있도록 runserver 라고 하는 간단한 테스트용 웹 서버를 제공함.


# IP와 포트번호를 지정하지 않음
# 127.0.0.1:8000
python manage.py runserver

# 포트번호만 지정
# 127.0.0.1:8888
python manage.py runserver 8888

# & 명령을 추가하면, 웹 서버 프로그램이 백그라운드에서 실행됨.
# 단, 리눅스, 맥에서만 가능
python manage.py runserver 0.0.0.0:8000 &

A. Admin 페이지


http://127.0.0.1:8000/admin

Admin 사이트에 로그인하기 위한 관리자(슈퍼유저)를 생성


python manage.py createsuperuser

User와 Groups 테이블이 보이는 것은 setting.py 파일에 django.contrib.auth 애플리케이션이 등록되어 있기 때문

참고문헌

김석훈, "Django로 배우는 쉽고 빠른 웹개발 파이썬 웹프로그래밍", 개정판, 4쇄, 한빛미디어, 2020년

#Django #뼈대

0분전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.