TIL[76].Django 프로젝트 초기세팅

jake.log·2020년 10월 4일
1

프로젝트 진행시 django 초기세팅 과정에 대한 블로깅입니다.

1)가상환경 및 패키지 설치

  1. Miniconda 가상환경 설치
    파이썬 가상환경을설치하고 가상환경을 통해 여러 패키지들을 관리할 수 있습니다.

  2. 프로젝트에 필요한 python package 설치

  • conda create -n myenv python=3.8 django
  • $ pip install django
  • $ pip install django-cors-headers
    #이후에 MySQL server에 접속하기 위한 package
  • $ pip install bcrypt (인증,인가)
  • $ pip install Pyjwt (인증,인가)
  • $ pip install mysqlclient (mysql 부터 설치한 후 진행한다.)

2)django 프로젝트 생성

  1. project 초기 세팅 연습 후 확인을 위한 repository clone
    ex)
  • $ git clone https://github.com/wecode-bootcamp-korea/backend-exercises.git
  • $ cd backend-exerciese
  1. branch 생성
  • $ git branch feature/"작업명"
  • $ git checkout feature/"작업명"
  1. "이름"으로 django project 생성
  • $ django-admin startproject "project이름"
  • $ cd "project이름"
  • $ python manage.py startapp "app이름"(모델 짜고나서 천천히)

3).gitignore 설정

https://www.toptal.com/developers/gitignore

cd '프로젝트 폴더명'
touch .gitignore
vi .gitignore

아래 두가지 추가
my_settings.py (보안 관련 파일은 github에 업로드되면 안된다.)
*.csv (crwaling한 파일 역시 업로드하지 않는다.)

보안을 위한 my_setting.py 생성
(MySQL,SECRET)
데이터베이스나 secret_key 경우 settings.py에 그냥 기록되면 안 됩니다.

cd "생성한프로젝트 폴더명"
touch my_setting.py

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '생성한 DATABASE 명',
        'USER': 'root',
        'PASSWORD': 'DB 비밀번호',
        'HOST': '실제 DB 주소',
        'PORT': '3306(mysql)',
    }
}

SECRET = {
        'secret':'시크릿키',
}
ALGORITHM = 'HS256'

4).settings.py 설정

corsheaders를 settings.py에 추가해주고 django-cors-headers를 설치합니다.

  • pip install django-cors-headers

추가할 내용 참고

INSTALLED_APPS = [
...
		'django.contrib.staticfiles',
		'corsheaders'
]
MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]
#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False

##CORS
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True

CORS_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',
)
  • 사용하지 않는 요소는 주석 처리를 해줍니다. (admin, csrf, auth)

  • my_settings.py DATABASE를 설정해주고, settings.py에 적용합니다.

    DATABASE 설정을 적용하려면, 아래와 같이 설정해줍니다.

import my_settings
DATABASES = my_settings.DATABASES

추가적으로 외부 API(SNS 로그인, AWS 접속용 정보 등)도 기록할 수 있습니다.
중요한 정보는 직접 소스로 공유하지 않고 위와 같이 별도의 파일을 통해 관리합니다.
또한 이 파일은 깃 저장소에 공유하지 않으므로, .gitignore 파일에도 등록해야 합니다.

  • 마지막으로 requirements.txt 생성까지하여 변경 기록등을 확인합니다.
    pip freeze > requirements.txt
profile
꾸준히!

0개의 댓글