본문 바로가기

레퍼런스/장고 튜토리얼

장고(Django) 데이터베이스 설정

이제 chem/settings.py를 엽니다. 일반적인 파이썬 모듈로 장고 설정을 대표하는 모듈 레벨 변수가 있습니다.

 

기본적으로는, SQLite를 사용하도록 설정돼있습니다. 데이터베이스를 잘 모르거나 장고에 관심만 있는 수준이라면, 가장 쉬운 설정입니다. SQLite는 파이썬에 포함돼 있으므로, 다른 설정을 할 필요가 전혀 없습니다. 실제 프로젝트를 할 때에는 맞지 않는 데이터베이스입니다.

 

다른 데이터베이스를 사용하고 싶다면, 적절한 데이터베이스 연결을 다운로드 받고 DATABASES 'default' 키를 내가 사용하는 데이터베이스에 맞게 설정해 주어야 합니다 :

 

  • ENGINE - 'django.db.backends.sqlite3''django.db.backends.postgresql''django.db.backends.mysql', 또는 'django.db.backends.oracle'로 쓸 수 있습니다. 다른 벡엔드들도 사용할 수 있습니다.
  • NAME - 제 데이터베이스들의 이름입니다. 예를 들어 SQLite를 사용하고 있다면, NAME은 파일 이름을 포함한 전체 절대 경로를 입력해야 합니다. 기본 값은, os.path.join(BASE_DIR, 'db.sqlite3')로 프로젝트 디렉토리의 파일들을 저장해 줄겁니다.

SQLite를 사용하고 있는 게 아니라면 , USER, PASSWORD, HOST를 추가해야 합니다.

 

SQLite가 아니라 다른 데이터베이스를 쓰기 위한 팁

만약 SQLite가 아니라 다른 데이터베이스를 쓴다면, 이 지점에서 데이터베이스를 만들어야만 합니다. 데이터베이스의 상호 프롬프트에서 "CREATE DATABASE database_name;"의 형태로 만드세요.

chem/settings.py에서 제공하는 "데이터베이스 작성" 권한을 확인하세요.

SQLite를 사용한다면 아무것도 준비할 필요가 없습니다. 데이터베이스 파일은 자동으로 필요한 모든 것을 만들어 줄 겁니다.

chem/settings.py에서 TIME_ZONE을 여러분의 타임존에 맞게 설정하세요.

 

또한, 파일의 가장 위에 있는 INSTALLED_APPS를 참조하세요. 이 장고 인스턴스 내에서 활성화된 모든 장고 어플리케이션들의 목록입니다. 앱은 여러개의 프로젝트에 사용될 수 있고, 여러분의 프로젝트 내에서 패키지로 싸거나 풀어서 사용할 수 있습니다.

 

기본적으로, 장고의 INSTALLED_APPS는 다음 앱들을 포함합니다 :

 

  • django.contrib.admin : 관리자 사이트입니다.
  • django.contrib.auth : 인증 시스템입니다.
  • django.contrib.contenttypes : 컨텐트 타입을 위한 프레임워크입니다.
  • django.contrib.sessions : 세션 프레임워크입니다.
  • django.contrib.messages : 메시징 프레임워크입니다.
  • django.contrib.staticfiles : 스태틱 파일의 프레임워크입니다.

이 어플리케이션들은 편의를 위해서 기본적으로 포함돼 있습니다.

 

이 어플리케이션들의 일부는 적어도 하나의 데이터베이스 테이블을 사용하기 때문에 앱을 사용하기 전에 테이블을 먼저 만들어야 합니다. 그렇게 하기 위해서 다음의 명령어를 입력하세요 :

 

$ python3 manage.py migrate

 

migrate 커맨드는 INSTALLED_APPS 설정을 보고 chem/settings.py 파일의 데이터베이스 설정 및 앱과 함께 제공된 데이터베이스 migration에 따라 필요한 데이터베이스 테이블을 만듭니다. 각 데이터베이스 migrations가 적용되는 메세지가 뜹니다.

 

 

저는 이미 적용해두어서 여러 메세지가 뜨진 않았습니다.