TIL 45. conda 가상환경 관리와 django 설정

rahula·2021년 6월 29일
0

django 큰 그림

목록 보기
1/2
post-thumbnail

나중에 읽어볼 글들
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

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와 패키지

가상 환경에서 pip로 패키지를 설치하면 가상 환경 폴더(디렉터리)의 Lib/site-packages 안에 패키지를 저장한다 (npm의 package.json과 같은 기능)

기본 가상환경 단계

  1. conda 가상환경 생성

conda create --name <environment> python=3.9

  1. 가상환경 활성화

conda activate <environment>

  1. django 설치

pip install django

  1. (선택) ipython 설치

conda install ipython

  1. cors-headers 설치
    pip install django-cors-headers

mysql : 이미 conda에서 지원

  1. mysqlclient 설치

주의 : pip에서는 이유는 모르겠지만 에러가 난다. 그래서 conda의 명령어를 써야 함.

conda install mysqlclient

django 프로젝트 시작

  1. 프로젝트 루트 디렉토리 생성

django-admin startproject <project> <폴더 위치>
2. 앱 디렉토리 생성
python manage.py startapp <app>

  1. .gitignore

사이트에서 여러 환경에 대한 gitignore파일 생성
https://www.toptal.com/developers/gitignore

  1. my_settings.py
    숨길 정보들은 my_settings.py에 넣고,settings.py에서 import해서 사용
    우선은 데이터베이스정보와 시크릿키. bcrypt의 알고리즘 정보를 넣기도 하는 것 같다.

  2. 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

profile
백엔드 지망 대학생

0개의 댓글