Contents
django 14 - Git과 django (config파일 숨기기)
   2022년06월23일     2분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] 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 해줌)
    • img_110
  • add 하고 싶지 않으면 체크해제하면 됨
    • img_111
  • 메시지를 적고 커밋 앤 푸시~
    • img_112