gitignore - 버전컨트롤 할 때 추적하지 않아도 되거나, 배포할 때 보안 등의 문제로 깃에 올리지 않을 파일들을 깃에 올리지 않게 하는 것
django-environ - 장고의 시크릿키를 가릴 수 있게 해주는 라이브러리
import os, environ
env = environ.Env(
DEBUG=(bool, False)
)
BASE_DIR = Path(__file__).resolve().parent.parent
environ.Env.read_env(
env_file=os.path.join(BASE_DIR, '.env')
)
SECRET_KEY = env('SECRET_KEY')
Python
복사
settings.py
를 settings.py에 작성해주면, 시크릿키를 env에서 읽어온다. 후에 gitignore에 .env를 넣어주면 된다.
Git hub 설정
프로젝트 메인 디렉토리에 gitignore 라는 파일을 만들어 준 후,
jetbrain의 gitignore 코드를 작성해준다.
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
#가상환경을 제외하기 위해 작성
venv/
Python
복사
secret key
django에서 앱마다 배정되는것. 배포를 할 때, 노출시키면 안되므로 따로 관리를 해줘야한다.
.gitignore 파일을 project name 디렉토리에 만들어 준 후
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
Python
복사
를 입력해준후,
venv/
.env
db.sqlite3
.idea/
Python
복사
등을 입력해서 깃에 연동시키지 않을 디렉토리/파일 등을 작성해준다
django-environ
secret key등을 노출시키지 않아도 내부적으로 읽어 처리할 수 있는 라이브러리.
$ pip install django-environ 를 입력하면 가상환경 내에 설치 가능.
상위 dir 에 .env 파일을 생성,
DEBUG=on
# secret key=에 앱의 시크릿 키 입력
SECRET_KEY=django-insecure--c(jzk^ut3+vr(hb13i98&e_^d0%+l59$atxqp6galy1lwi69&
DATABASE_URL=psql://urser:un-githubbedpassword@127.0.0.1:8458/database
SQLITE_URL=sqlite:///my-local-sqlite.db
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=djgitango_redis.client.DefaultClient&password=ungithubbed-secret
Python
복사
를 입력해준다.
dir/settings.py 에
import os, environ
env = environ.Env(
# set casting, default value
DEBUG=(bool, False)
)
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# reading .env file
environ.Env.read_env(
env_file=os.path.join(BASE_DIR, '.env')
)
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env('SECRET_KEY')# env 파일에서 읽어온다.
Python
복사
를 입력해, secret key를 노출하지 않고 django-environ으로 처리할 수 있도록 해준다.
Git hub 연동
PyCharm → VCS → Git
terminal
git add . → git 에서 내부 파일들을 추적.
git commit -m"Initial commit"