파이썬 라이브러리들 간 충돌을 방지
virtualenv / venv
작업할 디렉토리 생성
가상 환경 생성
생성된 가상 환경으로 진입 → 프롬프트 변경 확인
작업
가상 환경에서 빠져나옴
(myvenv)$ pip3 freeze > requirenments.txt
(new_venv)$ pip3 install -r requirenments.txt
$ source /home/alex/VENV/djprj/bin/activate
(djprj)$ pip3 install Django
(djprj)$ pip3 list
# 파이썬 기본 라이브러리들의 위치 /usr/local/lib/python3.7/
# 파이썬 외부 라이브러리들의 위치 /home/alex/VENV/djprj/lib/python3.7/site-packages/
(djprj)$ pip3 install pytz
(djprj)$ pip install -U pip setuptools wheel
(djprj)$ pip3 install pyopenssl ndg-httpsclient pyasn1
작업 순서 | 관련 명령/파일 | 필요한 작업 내용 |
뼈대 만들기 | startproject | 프로젝트 생성 |
settings.py | 프로젝트 설정 항목 변경 |
migrate | User/Group 테이블 생성 |
createsuperuser | 프로젝트 관리자인 슈퍼유저를 만듦 |
startapp | 앱 생성 |
settings.py | 앱 등록 |
모델 코딩하기 | models.py | 모델(테이블) 정의 |
admin.py | admin 사이트에 모델 등록 |
makemigrations | 모델의 변경사항 추출 |
migrate | 변경사항을 데이터베이스에 반영 |
URLconf 코딩하기 | urls.py | URL 정의 |
뷰 코딩하기 | views.py | 뷰 로직 작성 |
템플릿 코딩하기 | templates 디렉토리 | 템플릿 파일 작성 |
그 외 코딩하기 | - | (없음) |
coding
project 생성
프로젝트 설정 파일 변경
기본 테이블 생성
슈퍼유저 생성
애플리케이션 생성
애플리케이션 등록
(djprj)$ django-admin startproject mysite .
# settings.py
# ALLOWED_HOST 지정
ALLOWED_HOSTS = ['192.168.0.1', 'localhost', '127.0.0.1']
# 애플리케이션 등록
# 템플릿 설정, DIRS 변경
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 수정
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.message.context_processors.messages',
],
},
},
]
# 데이터베이스 엔진
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# 타임존 설정
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Seoul'
# 정적 파일 설정
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # 추가
# 미디어 관련 사항 지정
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 한국 시간대만 사용하는 경우
# USE_TZ = True
USE_TZ = False
# 장고 사용 언어
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ko-kr'
models
테이블 정의
admin 사이트에 테이블 반영
데이터베이스 변경 사항 반영
테이블 확인
URLconf
View
Templates
인증