반응형
❤️🔥TIL : Today I Learned❤️🔥
그날그날 내가 공부한 것을 정리하는 것
내일배움캠프 AI트랙 21Day
오늘 배운 내용.
아침 퀴즈 3일차
https://github.com/LeeHyunji/morning_quiz
Django 기초반 5주차 + Django 심화
Django 프로젝트 구조
project_name/ # 장고프로젝트 설정 패키지
├── db.sqlite3
├── manage.py
└── config
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
── requirements.txt # 설치할 pip 패키지 목록 파일
- venv/ : 프로젝트의 패키지들을 관리하는 가상환경
- manage.py : 장고 서버 관리를 도와주는 역할을 하는 스크립트. 다른 설치없이 웹 서버를 시작할 수 있다.
- config/ : 디렉토리 내부에 프로젝트를 위한 실제 python 패키지들이 저장된다. 프로젝트 내부 어디에서나 접근(import)할 수 있다.
- config/__init__.py : 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 한다. python version 3.3 부터는 __init__.py 가 없어도 패키지로 인식이되지만, 하위 버전과 호환을 위해 생성하는 것이 안전하다.
- config/settings.py : 현재 Django 프로젝트의 환경/구성을 저장한다.(추후에 관련 정보 update)
- config/urls.py : 현재 Django 프로젝트의 URL선언을 저장한다. urlresolver가 사용하는 패턴 목록을 포함한다.
- config/wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI(Web Server Gateway Interface, 웹서버와 파이썬 웹 애플리케이션 개발환경 간의 인터페이스에 대한 규칙) config 설정파일이다.
settings.py
settings.py 파일은 장고 프레임워크의 프로젝트 환경을 설정하는 파일이다.
- INSTALLED_APPS - 장고에 설치 된 앱들
- MIDDLEWARE - 사용자 요청/응답 사이에서 작동하는 시스템들
- TEMPLATES - 나의 html파일을 자동으로 인식
- DATABASES - 내가 사용할 데이터베이스 연동 설정
- AUTH_PASSWORD_VALIDATORS - 패스워드 보안 수준 검증
- LANGUAGE_CODE - 화면에 어떤 언어를 보여줄것인지
- TIME_ZONE - 우리가 어떤 시간에 있는지
개발모드 설정(DEBUG)
기본적으로 개발 모드는 DEBUG=True로 설정되어 있다. 운영모드일 경우 False로 설정해야한다. Flase할 경우 서버에서 디버깅 메세지를 띄워주지 않는다.
# SECURITY WARNING: don't run with debug turned on in production
DEBUG = True
APP 추가
APP을 생성했으면 장고가 경로를 찾을 수 있게 INSTALLED_APPS에 추가한 APP 경로를 등록해줘야한다.
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
# app 생성후 추가
]
Templates 설정
장고에서 데이터를 사용자에게 보여주는 컴포넌트인 template의 경로나 정보를 설정할 수 있다.
앱마다 templates를 생성하지 않고 공용 templates라는 폴더에서 공통적으로 들어가는 html코드를 관리하기 위해서 'DIRS'에 기본 BASE_DIR를 templates경로로 설정할 수 있다.
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.messages.context_processors.messages',
],
},
},
]
DATABASES 설정
장고는 기본적으로 sqlite를 사용한다. 이러한 DB정보를 설정한다.
# Database
# <https://docs.djangoproject.com/en/4.1/ref/settings/#databases>
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
언어 및 지역 시간 설정
기본 설정은 LANGUAGE_CODE = "en-us", TIME_ZONE = 'UTC' 로 되어 있지만, 한글 표기를 위해 아래와 같이 수정한다.
# Internationalization
# <https://docs.djangoproject.com/en/4.1/topics/i18n/>
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_TZ = True
STATIC / MEDIA 경로 설정
Django 프로젝트의 정적 파일들(css, js, img 등)을 관리하기 위한 경로, 그리고 파일 / 사진 첨부 등 media 파일을 저장하는 경로를 추가해 준다.
# Static files (CSS, JavaScript, Images)
# <https://docs.djangoproject.com/en/4.1/howto/static-files/>
STATIC_URL = 'static/'
반응형
'I learned' 카테고리의 다른 글
내일배움캠프 AI - TIL 23 (0) | 2022.09.30 |
---|---|
내일배움캠프 AI - TIL 22 (0) | 2022.09.29 |
내일배움캠프 AI - TIL 20 (0) | 2022.09.27 |
내일배움캠프 AI - TIL 19 (0) | 2022.09.26 |
내일배움캠프 AI - WIL 4주차 (1) | 2022.09.25 |