2020-05-03 TIL Django Project 초기세팅

seo_kk·2020년 5월 3일
0

Django Project 초기 세팅

프로젝트를 시작하기 위해서는 초기세팅이 필수적이다.

우리는 프로젝트를 위해서 Backend가 해야 하는 초기 세팅에 대해서 다루어 보겠다.

  1. 프로젝트 전용 가상환경 만들기

conda activate -n "가상환경이름" python=3.7

  1. 가상환경 활성화

conda activate "가상환경이름"

  1. 장고 설치

python -m pip install Django

  1. 프로젝트 생성

django-admin startproject "폴더이름"

  1. git ignore를 사용

깃이 설치된 디렉토리에 .gitignore 파일을 생성하여 git에 올리지 않을 파일을 관리해야 한다.
gitignore.io에서 만들면 되며, manage.py가 있는 곳에 vim .gitignore을 이용하여 만든 내용을 붙여넣으면 된다. 또한 csv파일도 추가할 수 있는데 *.csv라고 추가해주면 된다.

-예시-

*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
db.sqlite3-journal
media
*.csv
  1. 보안관련세팅

pip install django-cors-hedaders 설치

이 이후에 settings.py와 middleware에 corsheaders를 추가해준다.

INSTALLED_APPS = [
...
		'django.contrib.staticfiles',
		'corsheaders'
]
MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]

이 이후에 허용할 값을 정의해야 하는데 settings.py 아래부분에 다음과 같은 내용을 추가해주면 된다.

##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',
)
  1. 사용하지 않는 시스템 주석처리

settings.py에서 다음과 같은 것들을 주석처리 하면된다.

INSTALLED_APPS에서 admin과 auth 주석처리.
MIDDLEWARE에서 CsrfViewMiddleware와 AuthenticationMiddleware를 주석처리.

  1. my_settings.py 생성하기.

보안과 데이터 베이스 설정을 위해서는 manage.py가 있는 곳에 my_settings.py 파일을 만들어 주어야 한다. 보통 보안문제와 데이터베이스를 설정하기 위해서 만들어 준다.

Secret_key 설정

생성한 my_settings.py에 다음과 같이 입력해주면 된다.
SECRET_KEY = 'django settings.py에 있던 SECRET_KEY

Databases 설정

데이터베이스 설정은 my_settings.py에 입력해 준뒤, settings.py에 있던 본래의 DATABASES 내용을 주석처리 해주어야한다.

DATABASES = {
         'default' : {
                 'ENGINE': 'django.db.backends.mysql',
                 'NAME': 'project 이름',
                 'USER': 'root',
                 'PASSWORD': 'mysql비밀번호',
                 'HOST': 'localhost',
                 'PORT': '3306',
                 'OPTIONS': {'charset': 'utf8mb4'},
                 'TEST': {
                         'CHARSET': 'utf8mb4',
                         'COLLATION': 'utf8_general_ci'
                 }
         }
 }

또한 my_settings.py는 보안 관련이기 때문에 git에 올라가면 안된다. .gitignore를 확인해 보자.

*.log
 *.pot
 *.pyc
 __pycache__/
 local_settings.py
 db.sqlite3
 db.sqlite3-journal
 media
 my_settings.py
  1. 데이터베이스 설치하기

mySQL을 사용할 것이다. mysql을 설치하는 법은 다음과 같다.

brew install mysql

설정을 시작하는 법은 다음과 같다.

mysql_secure_installation

설정에 대한 질문의 답은 다음과 같다.

1.바밀번호 복잡도 검사 과정 (n 추천) --> yes로 하면 매번 로그인시 귀찮고 설정이 힘듬
2.비밀번호 입력 & 확인
3.익명 사용자 삭제 (y)
4.원격 접속 허용하지 않을 것인가? (n)
5.test DB 삭제 (y)
6.previlege 테이블을 다시 로드할 것인지 (y or n)

  1. 장고와 MySQL의 연결

pip install mysqlclient

  1. adimin 설정

settings.py에서 admin을 주석처리 했기 때문에 urls.py에서도 지워줘야 한다.

  1. requirements.txt

pip 설치된 파일을 requirements.txt로 보내서 git clone을 받게 된다면 어떠한 파일이 필요한지 알게 해줄 수 있다.
명령어 : pip freeze>requirements.txt

profile
BackEnd-Developer

0개의 댓글