1. 프로젝트용 가상환경 생성
- 아나콘다 프롬프트를 사용해도 됨.
- 파이참에서 작업할 경우, settings에서 파이썬 인터프리터와 터미널을 잡아준 뒤에 명령 실행.
- conda create "가상환경이름"(mee라고 생성함)
- conda activate mee (mee 활성화)
- conda install django (django 설치)
- 필요 라이브러리는 추후 추가
2. Django 프로젝트 생성
# 명령 실행 시, config 디렉토리가 생성됨.
# django가 동작하는 기본 뼈대가 생성 되는 듯.
django-admin startproject config .
3. 프로젝트 settings.py
# project 생성시 기본 설정
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
# 언어, 시간대 변경
LANGUAGE_CODE = 'ko-kr' # 한국어
TIME_ZONE = 'Asia/Seoul' # 한국시간대
# 기본파일 경로, 템플릿, 앱 추가, 데이터베이스, 권한 설정, static 경로, 배포시 debug 설정 등의 옵션을 지정할 수 있는 파일.
# 추후 진행하면서 내용 보강.
3-1. template 파일 경로 지정
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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.messages.context_processors.messages',
],
},
},
]
# 'DIRS' : [ BASE_DIR / '템플릿 폴더명']
# BASE_DIR 경로는 settings 파일 상단에서 지정 가능
4. 프로젝트 urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('board.urls')),
path('', include('chart.urls')),
path('', include('album.urls')),
]
# 설정파일 import
# urlpatterns에서 각 앱마다 존재하는 urls.py를 include
# config 디렉토리 내부의 urls.py는 URL요청이 일어날 경우 가장 먼저 호출됨.
# config(urls.py) -> app(urls.py) -> app(views.py 내부의 함수) 순서로 매핑.
(앱이 많을 경우에는 위와 같이 관리하지만, config의 urls.py에서 바로 view함수 매핑가능)
5. app 생성
# django-admin startapp "app_name"
django-admin startapp order
"order"라는 이름으로 app 생성
5-1. urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
path('order', views.order, name="order"),
]
# URL 요청 -> config(urls.py)에서 응답 -> include된 url path 중 일치하는 항목을 찾아냄
-> 지정된 views 내부의 함수로 연결
5-2. views.py
from django.shortcuts import render
def home(request):
return render(request, 'index.html')
def order(request):
return render(request, 'order.html')
# URL요청이 없다면(공백이라면) 디폴트로 views 내부의 home 함수로 연결.
# home 함수는 리퀘스트를 첫번째 매개변수로 받고 두번째 매개변수로 이동할 템플릿파일을 받음.
# 템플릿 파일은 config(settings.py)에서 지정한 템플릿 디렉토리 경로 내부에서 탐색.
6. 로컬환경에서 실행
python manage.py runserver
# 디폴트로 설정된 템플릿 index.html
# app "order" 페이지 이동
'개발 > Django' 카테고리의 다른 글
211208_서버 배포_0 (0) | 2021.12.08 |
---|---|
00 정리필요 (0) | 2021.08.27 |
01 프로젝트 기획 (0) | 2021.08.24 |