Django project를 실제 배포용으로 진행하는 경우, 아래와 같은 몇 가지 초기설정이 필요하다.
settings.py를 열고, admin, auth, csrf 등 사용하지 않는 기능을 주석처리 한다.
urls.py에서도 import 된 admin과 아래 주소를 삭제해야 mirgrate 할 때 오류가 나지 않는다.
++ app urls.py에서 '/sign-up'과 같이 '/'를 앞에 두면 migrate할 때마다 경고가 뜨는데 아래 설정을 settings.py에 넣어두면 안 뜬다
##Stop Warning about '/' APPEND_SLASH=False
corsheaders 플러그인을 설치해두지 않으면 localhost가 아닌 외부에서 내 서버에 접속 할 때 에러가 발생할 수 있다.
아래 명령어로 플러그인 설치
pip install django-cors-headers
settings.py의 INSTALLED_APPS와 MIDDLEWARE에 추가 (위 이미지 참고)
하단에 허용할 값 정의
##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',
)
➕DEBUG = FALSE로, ALLOWED_HOST = [*] 혹은 한국 IP 만 으로 설정.
django project의 manage.py가 있는 디렉토리에서,
touch my_settings.py
혹은vi my_settings.py
로 새로운 파일을 생성한다.
my_setting.py 안에 아래 예시와 같이 데이터베이스와 시크릿키 정보를 담는다.
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': '#데이터베이스 이름',
'USER': '#유저(root)',
'PASSWORD': '#패스워드',
'HOST': 'localhost',
'PORT': '3306',
}
}
SECRET = {
'secret':'시크릿키',
}
이 설정을 적용하려면 settings.py도 함께 수정해야한다.
my_setting를 import,
import my_settings
기존 database, secret key 부분을 삭제한 뒤 my_settings.py 파일 안에 있는 설정을 참조하도록,
DATABASES = my_settings.DATABASES
SECRET_KEY = my_settings.SECRET
입력 후 저장하면 끝.
마지막으로, .gitignore 를 이용해서 유저의 DB정보와 password, SECRET KEY 등이 들어있는 my_settings.py를 git에 업로드 되지 않도록 관리해주어야 한다.(진짜 중요함)
https://www.gitignore.io/
이 사이트를 이용하면 운영체제, 개발환경, 프로그래밍 언어에 맞는 .gitignore에 담아야할 내용을 생성해준다.
✔️ 권장 키워드 : Vim, Linux, macOS, Django, Python
my_settings.py와 동일하게 django project의 manage.py가 있는 디렉토리에서, touch .gitignore
혹은vi .gitignore
로 새로운 파일을 생성 후 위의 내용과 my_settings.py를 담아 저장한다.
❗️git에 최초로 업로드 하기 전에 .gitignore 파일을 생성해야 제외되고, 이미 업로드 된 상태에서 .gitignore 파일을 생성하면 기존 내용이 삭제 되지 않으니 주의필요.
끝.