All Articles

django - 장고 프로젝트 초기 세팅

  1. mysql 실행
    mysql -u root -p

  2. mysql DB 생성
    CREATE DATABASE DB명 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  3. conda 가상 환경 설정
    conda create -n 가상환경명 python=3.8

  4. 가상 환경 실행
    conda activate 가상환경명

  5. 장고 설치
    pip install django

  6. mysql client 설치
    pip install mysqlclient

  7. 기타 필요한 프로그램 설치

  8. 프로젝트 만들기
    django-admin startproject 프로젝트명

  9. git ignore 설정
    gitignore.io에서 django, python, macos 추가하고 파일 받아오기

  10. manage.py 있는 디렉토리(=프로젝트 디렉토리)에서 .gitignore 생성 후 붙여넣기
    vi .gitignore

  11. .gitignore 파일에 설정 추가
### Django ###
...
my_settings.py
*.csv

  1. 같은 디렉토리에서 my_settings.py 만들어서 DB 정보와 시크릿키 정보 저장
DATABASES = {
  'default' : {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'DATABASE 명',
    'USER': 'DB접속 계정명', # root
    'PASSWORD': 'DB접속용 비밀번호',
    'HOST': '실제 DB 주소', # 로컬에서만 작업할 거면 localhost 입력
    'PORT': '포트번호', # 3306
  }
}

SECRET = {
  'secret':'시크릿키', # 프로젝트 메인 폴더 안 settings.py에서 확인
}

DB 계정 정보와 암호화, 복호화 시 사용하는 시크릿키는 외부에 노출되면 안 되므로 별도 세팅 파일에 작성한 후 github에 올라가지 않도록 한다. 7~9번 작업이 이것을 위한 것.


  1. settings.py에서 시크릿키값 숨기기 및 DB 설정
...
import my_settings

...
SECRET_KEY = my_settings.SECRET['secret']
...

...
DATABASES = my_settings.DATABASES
...

  1. settings.py의 INSTALLED_APP과 MIDDLEWARE에서 admin, csrf 관련 항목 주석처리
  2. 3000포트(프론트)에서도 접속할 수 있도록 cors 설치
    pip install django-cors-headers

  3. settings.py INSTALLED_APP과 MIDDLEWARE에 항목 추가
INSTALLED_APPS = [
...
		'django.contrib.staticfiles',
		'corsheaders'
]

MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]

  1. settings.py 가장 아래에 cors 허용값 입력
...

##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 ALLOWED_HOSTS 설정 변경
...
ALLOWED_HOSTS = ['*']
...

  1. 서버가 잘 돌아가는지 확인
    mysql.server start
    python manage.py runserver 0:포트번호
    포트번호는 보통 8000이며, 외부 접속용으로 서버를 띄울 땐 포트번호 앞에 0:를 붙어야 한다.