※ 다음의 내용을 기준으로 Project
를 진행한다는 가정 하에 작성하였으니 참고하시기 바랍니다.
django
및djangorestframework
패키지 이용- 패키지 관리툴
poetry
를 이용
폴더 생성 및 패키지 설치
1. VS Code를 New Window로 실행
※ 아래 2가지 방법 참고
- 작업표시줄에서 vs code 마우스 우클릭 >
New Window
클릭- vs code 실행 > 좌상단
File
클릭 >New Window
클릭 (단축키 : Ctrl + Shift + N)
2. 프로젝트 폴더 생성 및 열기
File
클릭 > Open Folder
클릭새 폴더
클릭폴더 선택
클릭3. 터미널 실행 및 가상환경 설정, 패키지 설치
poetry new '프로젝트명'
을 통해서도 프로젝트 디렉토리 생성 및 설정이 가능하지만,1. vs code 터미널 실행
Open in Intergrated Terminal
클릭2. poetry 설치
3. 가상환경 생성
※ Terminal 창에 입력
poetry init
4. Django와 DRF 설치
※ Terminal 창에 입력
poetry add django==3.2.13 djangorestframework
프로젝트 및 앱 생성, 파일 생성 및 기본 셋팅
1. django 프로젝트 및 앱 생성
※ Terminal 창에 입력
poetry run django-admin startproject config .
poetry run django-admin startapp myproject
2. 관리 폴더 생성
.secrets
폴더media
, static
, templates
폴더clients side
까지 내가 작업하지 않는 경우, media
, static
, templates
폴더 생성은 생략 ※ Terminal 창에 입력
mkdir .secrets media static templates
3. secret.json
파일 생성.secrets
폴더 내에 secret.json
파일 생성settings.py
파일 내의 SECRET_KEY 숨김 작업 시 사용 ※ Terminal 창에 입력
touch .secrets/secret.json
4. settings.py
파일 수정1. restframework 모듈 및 app 추가
# Application definition
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# restframework 추가
"rest_framework",
# APP
"앱이름",
]
2. MEDIA URL 설정
import ison
import os
# MEDIA 경로
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
3. SECRET_KEY
설정→ 작업의 목적 : SECRET_KEY는 보안사항이므로, 숨김 처리를 위함
settings.py
에서 SECRET_KEY
라인 전체를 잘라내기.secrets/secret.json
파일에 붙여넣고 아래와 같이 수정
json
은key-value
쌍으로 이루어진 데이터를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷- 혹시나
노출 혹은 분실
로 인해SECRET_KEY
를 재설정해야 하는 경우, https://djecrety.ir/ 사이트를 이용하여 생성 후, 적용하면 됨.
{
"DJANGO_SECRET_KEY" : "django-insecure-0_qouxsw8fio^z7-@*2bil6u56t&r)e3s(snnxfsdz5a07sk#="
}
settings.py
파일로 돌아와 아래와 같이 코드 추가 # SECRET_KEY
SECRET_DIR = BASE_DIR / ".secrets"
secrets = json.load(open(os.path.join(SECRET_DIR, "secret.json")))
SECRET_KEY = secrets["DJANGO_SECRET_KEY"]
4. STATIC 설정
# STATIC 경로
STATICFILES_DIRS = [BASE_DIR / "static"]
5. TEMPLATE 설정
# TEMPLATE 경로
TEMPLATE_DIR = BASE_DIR / "templates"
(아래로 내려가서..)
ː
TEMPLATES = [
{
ː
# DIRS 부분 수정
"DIRS": [TEMPLATE_DIR],
6. Language & Time 설정
(... 생략 ...)
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
(... 생략 ...)
urls
파일 생성 및 수정1. 앱폴더 내에 urls.py 생성
※ Terminal 창에 입력
touch 앱이름/urls.py
2. 앱폴더 내의 urls.py 수정
from django.urls import path
# 추후, views.py에 FBV/CBV 생성 후 import
from .views import *
urlpatterns = [
]
3. config 폴더 내의 urls.py 수정
# include 함수 추가
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("앱폴더명.urls")),
]
html
, css
까지 내가 작업해서 붙일 예정이라면 아래 작업까지 추가로 진행 # include 함수 추가
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("앱폴더명.urls")),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
6. html language
설정 변경 - Emmet❗❗ html 파일 생성 후 기본 자동완성 기능 이용 시, html language가 en으로 설정되어 있는 부분을 ko로 변경
VS Code 설치 후 한 번만 설정
해주면 그 이후부터는 안해도 됨.
Emmet
이란?강력한 자동완성 기능 등으로 HTML 작성 속도를 크게 향상시켜주는 플러그인
Emmet
설정 변경[ file > preferences > settings ]
단축키 :
ctrl
+,
emmet
검색 후 스크롤을 내려서 Emmet:Variables
에서 Add Item
작업 진행7. (선택) base.html
파일 생성 및 수정client side
까지 내가 작업하지 않는 경우, 해당 과정 생략base.html
파일 생성 ※ Terminal 창에 입력
touch templates/base.html
base.html
작성<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>타이틀명 입력</title>
{% block head_css%}
{% endblock head_css %}
{% block head_js %}
{% endblock head_js%}
</head>
<body>
<main>
{% block content %}
{% endblock content %}
</main>
{% block body_css %}
{% endblock body_css %}
{% block body_js %}
{% endblock body_js %}
</body>
</html>
.gitignore 파일 생성
vscode
에서 .gitignore
파일 생성touch .gitignore
.gitignore
내에 붙여넣기 후 저장※ 정리 목적으로 적은 글이니 페이지 열어놓고 보고 타이핑하지 말고 이해 및 숙지하여 바로바로 스피드하게 작업하자!!