본문 바로가기
back-end/python&django

[django 기초] 장고의 기본 구조와 settings.py 확인 / superuser 생성하기

by MOOB 2022. 1. 15.

 

아주 오랜만에 장고에 대해 포스팅 해본다.

 

 

사실 그동안 나도 다까먹어서 새로 공부하는 중임. 이 내용은 제주코딩베이스캠프의 페이스북 클론 강의와 쉽고빠른 웹개발, 파이썬 웹 프로그래밍 책을 보고 정리하는 것이다.

 

장고에서의 뼈대는 중심이 되는 프로젝트와 그 곁가지를 형성하는 애플리케이션으로 이루어져 있다. 장고 프로젝트를 처음 설치하면 자동적으로 db.sqlite3 데이터베이스가 설치된다.

 

  • 프로젝트 생성
django-admin startproject {프로젝트이름} .
  • 애플리케이션 생성
python manage.py startapp {애플리케이션 이름}

 

장고의 큰 틀은 이 두가지로 이루어져 있습니다. 제일 먼저 프로젝트 폴더에 있는 [settings.py](http://settings.py) 폴더를 살펴보겠습니다. 여기에서 가장 먼저 보아야 할 부분들에 대해 알아보자.

 

가장 먼저 ALLOWED_HOSTS 를 수정해 주어야 하는데요. 운영 모드인 경우 서버의 IP나 도메인을 반드시 지정해야 하고, 개발모드인 경우 값을 정하지 않아도 자동으로 127.0.0.1 은 들어가는 것으로 간주한다.

ALLOWED_HOSTS = ['127.0.0.1']

그 다은 프로젝트의 애플리케이션은 전부 INSTALLED_APPS 에 추가되어야 한다. 예를 들어 python manage.py startapp izoneisgod 이라는 애플리케이션을 생성했다면 이 izoneisgod 은 반드시 여기에 입력을 해 주어야 한다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'izoneisgod'
]

그 다음으로 보아야 하는 것은 데이터 베이스 엔진이다. 장고는 sqlite3을 자동으로 데이터 베이스로 사용하도록 설정되어있는데 만일 다른 데이터베이스를 사용한다면 이 부분을 수정해 주면 된다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

그 다음은 TIMEZONE 을 변경해 주는 것인데, 우리는 한국에 있으므로 UTC 를 다음과 같이 변경한다.

TIME_ZONE = 'Asia/Seoul'

모든 설정이 끝났다면 기본적인 변경 사항들을 데이터베이스에 머지해 준다. 다음 명령어를 통해 이를 실행할 수 있다. (이거 안하면 서버 실행 때 메세지 띄움)

python manage.py migrate

이제 python [manage.py](http://manage.py) runserver 를 통해 서버를 실행한 후 맨 뒤에 /admin 을 넣어보면 로그인 창이 뜰 것이다. 여기에서 파일들을 관리할 수 있는데 관리자 계정을 생성해야 이 어드민에 접근할 수 있다.

python manage.py createsuperuser

그 다음 나오는 id와 비번 생성을 위해 지시 내용에 따라준 후 페이지에 들어가면 다음과 같은 페이지를 볼 수 있을 것이다. 여기에 나오는 내용들은 개발을 하며 조절하거나 수정 할 수 있다.

댓글