프로젝트 진행시 django 초기세팅 과정에 대한 블로깅입니다.
Miniconda 가상환경 설치
파이썬 가상환경을설치하고 가상환경을 통해 여러 패키지들을 관리할 수 있습니다.
프로젝트에 필요한 python package 설치
conda create -n myenv python=3.8 django
$ pip install django
$ pip install django-cors-headers
$ pip install bcrypt
(인증,인가) $ pip install Pyjwt
(인증,인가) $ pip install mysqlclient
(mysql 부터 설치한 후 진행한다.) $ git clone https://github.com/wecode-bootcamp-korea/backend-exercises.git
$ cd backend-exerciese
$ git branch feature/"작업명"
$ git checkout feature/"작업명"
$ django-admin startproject "project이름"
$ cd "project이름"
$ python manage.py startapp "app이름"(모델 짜고나서 천천히)
https://www.toptal.com/developers/gitignore
cd '프로젝트 폴더명'
touch .gitignore
vi .gitignore
아래 두가지 추가
my_settings.py (보안 관련 파일은 github에 업로드되면 안된다.)
*.csv (crwaling한 파일 역시 업로드하지 않는다.)
보안을 위한 my_setting.py 생성
(MySQL,SECRET)
데이터베이스나 secret_key 경우 settings.py에 그냥 기록되면 안 됩니다.
cd "생성한프로젝트 폴더명"
touch my_setting.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': '생성한 DATABASE 명',
'USER': 'root',
'PASSWORD': 'DB 비밀번호',
'HOST': '실제 DB 주소',
'PORT': '3306(mysql)',
}
}
SECRET = {
'secret':'시크릿키',
}
ALGORITHM = 'HS256'
corsheaders를 settings.py에 추가해주고 django-cors-headers를 설치합니다.
pip install django-cors-headers
추가할 내용 참고
INSTALLED_APPS = [ ... 'django.contrib.staticfiles', 'corsheaders' ]
MIDDLEWARE = [ ... 'corsheaders.middleware.CorsMiddleware', ... ]
#REMOVE_APPEND_SLASH_WARNING APPEND_SLASH = False ##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', )
my_settings.py DATABASE를 설정해주고, settings.py에 적용합니다.
DATABASE 설정을 적용하려면, 아래와 같이 설정해줍니다.
import my_settings DATABASES = my_settings.DATABASES
추가적으로 외부 API(SNS 로그인, AWS 접속용 정보 등)도 기록할 수 있습니다.
중요한 정보는 직접 소스로 공유하지 않고 위와 같이 별도의 파일을 통해 관리합니다.
또한 이 파일은 깃 저장소에 공유하지 않으므로, .gitignore 파일에도 등록해야 합니다.
pip freeze > requirements.txt