TIL-031 | Django_Project Setting
🌈 Django
-
가상환경 생성(미니콘다)
- 신규 프로젝트를 시작할 때 대부분 가상환경 생성을 진행 한다. 진행하는 프로젝트가 1개 뿐이라면 무관하겠지만, 다수의 프로젝트를 진행할 시 프로젝트의 시작시점, 목적 등에 따라 언어, 프레임워크의 버전이 다를 수 있기 때문에 버전 간 충돌을 예방하기 위함이다.
conda create -n "가상환경 이름" python=3.8
conda activate "가상환경 이름"
- 신규 프로젝트를 시작할 때 대부분 가상환경 생성을 진행 한다. 진행하는 프로젝트가 1개 뿐이라면 무관하겠지만, 다수의 프로젝트를 진행할 시 프로젝트의 시작시점, 목적 등에 따라 언어, 프레임워크의 버전이 다를 수 있기 때문에 버전 간 충돌을 예방하기 위함이다.
-
Database(mySQL) 생성
- mySQL 실행하여 database를 생성한다.
- character set을 utf8mb4로 지정할 경우 이모지의 입력이 가능해진다. 일반적이 많이 쓰이는 utf8은 이모지 사용이 불가능하다.
- collation은 database에서 문자열을 정렬할때 어떤 문자들이 먼저올지를 결정하는 기준을 의미한다.(ex. ABCabc,AaBb...)
collation은 utf8mb4_general_ci 이 기본값이다.$ mysql -u root -p
mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;
-
Django 설치
- 위에서 설정한 가상환경에 Django와 mysqlclient를 설치한다.
$ pip install django
$ pip install mysqlclient
--> 이후 MySQL server에 접속하기 위한 package
- 위에서 설정한 가상환경에 Django와 mysqlclient를 설치한다.
-
Django 프로젝트 설정
- 시작하고자 하는 프로젝트를 생성한 후 해당 디렉토리에 들어간다.
$ django-admin startproject 프로젝트명
$ cd 프로젝트명
- 시작하고자 하는 프로젝트를 생성한 후 해당 디렉토리에 들어간다.
-
settings.py 설정
-
IP 허용
: 디버깅 모드에서 비어있는 ALLOWED_HOSTS 리스트는 ['localhost', '127.0.0.1', '[::1]'] 의미가 된다(로컬 호스트에서만 접속이 가능). 디버깅 모드를 끄면 지정한 호스트에만 접속할 수 있다.ALLOWED_HOSTS = ['*']
-
주석처리
: 잘 사용하지 않는 admin page 기능에 관련된 코드를 주석처리 한다.
urls.py 의 내용도 수정!
from django.urls import path urlpatterns = [ ]
-
-
my_settings.py 파일 생성
-
manage.py 파일과 동일한 위치에 my_settings.py 라는 이름으로 파일을 생성한다.
-
settings.py 에서 노출되면 안되는 secret_key 에 대한 정보를 따로 관리하기 위함이다.
$ touch my_settings.py
-
my_settings.py에 실제 쓰여지는 내용
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE 명',
'USER': 'DB접속 계정명',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {'charset': 'utf8mb4'}
}
}SECRET_KEY = '시크릿키'
#settings.py에 있는 secret_key 를 작성한다. -
setting.py 와 my_settings.py 연동
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings import DATABASES, SECRET_KEY
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY
-
-
corsheaders
- CORS는 Cross Origin Resource Sharing의 약자이며, corsheaders는 Cross Domain 이슈를 해결하기 위해 서버의 헤더를 조작하는 기능을 하는 패키지이다.
👉 django-cors-headers를 설치한다.
$ pip install django-cors-headers
👉 settings.py 설정
INSTALLED_APPS = [
...
'corsheaders'
]MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]👉 CORS 추가설정 : settings.py 제일 아랫부분에 아래의 코드 추가
##CORS
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = TrueCORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
)CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)
- CORS는 Cross Origin Resource Sharing의 약자이며, corsheaders는 Cross Domain 이슈를 해결하기 위해 서버의 헤더를 조작하는 기능을 하는 패키지이다.
-
서버 구동 테스트
$ python manage.py runserver
-
.gitignore 생성
-
https://www.toptal.com/developers/gitignore 접속하여,
아래의 키워드 추가 한후 Create!python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh
-
create 하여 나온 내용 .gitignore 파일 생성 후 파일의 내용으로 붙여넣기 (.gitignore의 위치는 manage.py, my_settings.py 와 동일한 위치에 생성한다.)
-
붙여넣기 한 내용 제일 아랫 부분에 "my_settings.py" 추가한다.
-
Author And Source
이 문제에 관하여(TIL-031 | Django_Project Setting), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lck0827/TIL-030-DjangoProject-Setting저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)