django 14 - Git과 django (config파일 숨기기)
[카카오 클라우드 스쿨] GITIGNORE를 통해 CONFIG파일을 숨겨보자!(업로드를 안해보자!)
Git과 django (config파일 숨기기)
14-1. django에서 github에 올려서는 안되는 파일 숨기기
1 . json 파일을 통해 setting.py가 작동하도록 바꿀 것임
- 프로젝트 폴더 하단에 secret.json 파일을 생성한다
2 . settings.py에는 남들에게 유출되면 안되는 정보가 있을 것임
- secret key: 절대 공개가 되면 안됨
- json 파일에 그대로 세팅해 준다 (큰따옴표로 적는다)
"SECRET_KEY" : "django-insecure-asdasdasdasdasdasdasgduasguisagdasufqjn_"
3 . DB 관련된 설정들을 집어넣는다
{
"SECRET_KEY" : "django-insecure-asdasdasdasdasdasdasgduasguisagdasufqjn_",
"DB_NAME": "DBDBDB",
"DB_USER": "root",
"DB_PASSWORD": "12345678",
"DB_HOST": "192.168.12.34",
"DB_PORT": "3306"
}
4 . 이제 settings.py 에서 json을 불러온다
- base dir 하단에 secret json이 있는데 이것을 open한다!는 뜻
- json 파일 내부 내용이 이 변수 내부로 들어간다
import os, json
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
secret_file = os.path.join(BASE_DIR, 'secret.json')
with open(secret_file) as f:
secrets = json.loads(f.read())
- 이제 변수 안에서 각종 설정들을 하나씩 꺼내올 수 있다
5 . 마침내 secret key를 json 파일로부터 불러오도록 변경할 수 있다
SECRET_KEY = secrets['SECRET_KEY']
# 중략 #
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': secrets['DB_NAME'],
'USER': secrets['DB_USER'],
'PASSWORD': secrets['DB_PASSWORD'],
'HOST': secrets['DB_HOST'],
'PORT': secrets['DB_PORT'],
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}
6 . 프로젝트 폴더 바로 하단에 .gitignore 파일 생성
- 여기 안에 작성된 파일들은 git에 추가하지 않음(원격 저장소에 올라가지 않음)
- 추적 등이 안되므로, 암호 등을 적은 json 파일을 추가해서 사용할 수 있다
- 이 .gitignore 파일은 관리를 잘 해줘야 함
14-2. pycharm을 통해 커밋 푸시하기
- shareproject on github 버튼
- add account
- 업로드하면 add commit push 한번에 다 해줌
- 일단 아무거나 수정하고 버튼 누르기. (여기서 commit할 때 바뀐애들을 자동으로 add 해줌)
- add 하고 싶지 않으면 체크해제하면 됨
- 메시지를 적고 커밋 앤 푸시~