[Django] 초기 Setting & MySQL 연동

ggg9_·2020년 10월 3일
0

[Django] Tutorial

목록 보기
6/6

가상환경 및 패키지 설치 & 프로젝트 생성

가상환경 생성

# 가상환경 생성
conda create -n 가상환경명 python=3.8 # 가상환경명과 파이썬 버전 명시

# 가상환경 활성화
conda activate 가상환경명

프로젝트에 필요한 파이썬 패키지 설치

pip install django

pip install django-cors-headers

pip install mysqlclient # mysql이 설치되지 않았다면 mysql 먼저 설치!

Django project 생성

django-admin startproject 프로젝트명

Project setting

.gitignore 설정

# 터미널에서 현재 프로젝트 디렉토리로 이동 후
touch .gitignore
vi .gitignore

# 아래 두가지 추가
my_settings.py
*.csv
  • 깃에 공유되어서는 안되는 것들(보안 관련 파일)을 .gitignore 파일을 생성해서 관리한다.
  • .gitignore에서 생성된 내용을 복사하여 프로젝트 디렉토리 내 .gitignore 파일에 추가한다.

보안을 위한 my_settings.py 생성

# 현재 프로젝트 디렉토리에서 my_setting.py 생성 후 추가
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '실제 DB 주소',
        'PORT': '포트번호',
    }
}

SECRET = {
        'secret':'시크릿키', # settings.py의 SECRET_KEY 가져오기
}
  • SECRET_KEY, DATABASE 등은 별도의 파일이나 환경변수로 관리하는것이 좋다.
  • 외부 API(SNS 로그인, AWS 접속용 정보 등)도 기록할 수 있다.

settings.py 설정

# cors 처리를 도와줄 플러그인 설치
pip install django-cors-heaers     
import my_setting # my_setting.py의 설정을 적용하기 위해 임포트

SECRET_KEY = my_settings.SECRET_KEY                           # 수정

DATABASES = my_settings.DATABASES                             # 수정

INSTALLED_APPS = [
    ...
    #'django.contrib.admin',                                   # 주석처리
    #'django.contrib.auth',                                    # 주석처리
    'corsheaders',                                             # 추가
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',                   # 추가
    #'django.middleware.csrf.CsrfViewMiddleware',              # 주석처리
    #'django.contrib.auth.middlewar.AuthenticationMiddleware', # 주석처리
    ...
]

#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',
)

requirements.txt 생성

# pip freeze의 결과를 requirements.txt에 기록
pip freeze > requirements.txt
  • 팀 프로젝트에서는 동일한 환경을 구성할 수 있도록 정보를 전달해야 한다.

Database 생성

mysql.sever start

mysql -u root -p

create database 데이터베이스명 character set utf8mb4 collate utf8mb4_general_ci;

python manage.py migrate # Django와 MySQL 연동 확인

0개의 댓글