개발 뼈대 세우기
1. 프로젝트 생성
$ source /home/centos/VENV/venv/bin/activate
(venv) $ cd /home/centos/projectDir/
(venv) $ django-admin startproject mysite
# 베이스디렉토리명 변경
(venv) $ mv mysite myPrj
- 베이스디렉토리(루트디렉토리) mysite와 하위의 프로젝트 관리용 디렉토리 mysite 2개가 생성됨
- 베이스디렉토리명은 변경해도 아무 영향이 없으므로, 프로젝트명으로 변경
2. 설정파일 settings.py 파일 변경 (mysite/settings.py)
(1) ALLOWED_HOSTS
- 서버의 IP나 도메인 등록
ALLOWED_HOSTS = ['192.168.111.100','localhost','127.0.0.1'](2) INSTALLED_APPS
- startapp 명령으로 신규 앱을 생성 후, INSTALLED_APPS 에 등록
(venv) $ python3 manage.py startapp bookmark (venv) $ cat /bookmark/apps.py (생략) class BookmarkConfig(AdminConfig) (생략) (venv) $ cd .. (venv) $ vim mysite/settings.py
# 앱 추가
INSTALLED_APPS = [..(생략),
bookmark.apps.BookmarkConfig,
]
(3) TEMPLATES의 ‘DIRS' 항목
TEMPLATES = [
...
'DIRS'=[os.path.join(BASE_DIR, 'templates')],
...
]
(4) 데이트베이스 엔진 (기본은 sqlite3)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3' # 이부분 내가 사용코저 하는 DB 엔진으로 변경. 오라클, mysql 등..
}
}
(5) TIME_ZONE
- 한국시간으로 변경
TIME_ZONE = 'Asia/Seoul'
(6) STATIC_URL, STATICFILES_DIRS
- 정적파일들을 모아둘 경로를 지정
STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] #추가
(7) MEDIA_URL, MEDIA_ROOT
- 파일 업로드 기능을 개발할 때 필요한 설정
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
(8) USE_TZ
- 한국 시간대만 사용하는 프로젝트의 경우, 아래와 같이 설정하면 DB에 저장되는 시간도 한국시간으로 저장되어 편리함
USE_TZ = False
(9) LANGUAGE_CODE
- Admin 사이트 화면의 메뉴 및 설명이나, 날짜/시간에 대한 표현이 달라지므로 주의
- 아래와 같이 설정하면 한국어로 표현됨
LANGUAGE_CODE = 'ko-kr'
3. 기본테이블 생성 (User, Group)
(1) 장고가 기본적으로 제공하는 User, Group 테이블을 생성하는 과정
(venv)$ python3 manage.py migrate
4. 슈퍼유저 생성
(1) 장고가 제공하는 Admin 사이트에 접속할 관리자(슈퍼유저) 생성 과정
(2) Username, Email, Password, Password(again) 을 입력 해야 함
(venv) $ python3 manage.py createsuperuser
5. 애플리케이션 생성
(venv) $ python3 manage.py startapp bookmark
6. 애플리케이션 등록
(1) bookmark 앱 생성시 자동으로 생성된 apps.py에 정의된 BookmarkConfig를 settings.py에 등록해야 함
INSTALLED_APPS = [
....
'bookmark.apps.BookmarkConfig', # 추가
]