나중에 읽어볼 글들
https://windybay.net/post/13/
https://medium.com/@psychet_learn/python-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-a87fc6e4d12b
가상환경은, 기존 환경(base)에 대해 독립적인 공간이라고 생각하면 된다. 파이썬에 관련된 모든 모듈들이 base환경 혹은 다른 환경과 충돌될 일을 방지한다.
평생 혼자만 프로젝트를 진행한다면 가상환경은 필요 없다. 그러나 다른 개발자들과 프로젝트를 공유한다면, 가상환경이 필수적이다. 왜냐? 프로젝트마다 약속해놓고 같이 쓸 버전이 있기 때문이다.
만약 A개발자는 파이썬 2.9를 쓰고, B개발자는 파이썬 3.9를 쓴다면, 그 두 버전 사이에 달라진 부분을 둘 중 한쪽에서는 작동시키지 못할 것이다. 비단 파이썬뿐만 아니라 pip, jwt등 많은 것들이 있다.
그래서 공유목적으로 conda list
혹은 pip list
의 결과를 프로젝트 디렉토리 안에 텍스트 파일로 저장하기도 한다.
Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others.
가상 환경에서 pip로 패키지를 설치하면 가상 환경 폴더(디렉터리)의 Lib/site-packages 안에 패키지를 저장한다 (npm의 package.json과 같은 기능)
conda create --name <environment> python=3.9
conda activate <environment>
pip install django
conda install ipython
pip install django-cors-headers
mysql : 이미 conda에서 지원
주의 : pip에서는 이유는 모르겠지만 에러가 난다. 그래서 conda의 명령어를 써야 함.
conda install mysqlclient
django-admin startproject <project> <폴더 위치>
2. 앱 디렉토리 생성
python manage.py startapp <app>
사이트에서 여러 환경에 대한 gitignore파일 생성
https://www.toptal.com/developers/gitignore
my_settings.py
숨길 정보들은 my_settings.py에 넣고,settings.py에서 import해서 사용
우선은 데이터베이스정보와 시크릿키. bcrypt의 알고리즘 정보를 넣기도 하는 것 같다.
settings.py
필수 사항들
ALLOWED_HOSTS = ['*']
DEBUG = True
INSTALLED_APPS
에다 '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',
)
한국시간으로 DB 설정하기
LANGUAGE_CODE = "ko-KR"
TIME_ZONE = "Asia/Seoul"
USE_TZ = False
requirements.txt 에 pip 환경 (모듈)정보 넣기
pip freeze > requirements.txt