👉 window 기준 설치
공식 문서
참고할 만한 블로그
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
이러고 바로 poetry --version
명령어를 실행하면 poetry를 찾을 수 없다고 한다.
이는 환경변수를 추가해주지 않았기 때문에 일어나는 일.
해당 경로를 윈도우 환경 변수에서 설정해주자.
시스템 환경 변수 편집
들어가기
환경 변수(N)...
클릭
시스템 변수(S)
하위의 PATH
값 더블클릭
새로 만들기(N)
클릭해서 아까 그 경로 추가하기
그리고
❗ ❗ ❗ ❗ ❗ ❗ ❗ ❗
꼭 재시작
하기
❗ ❗ ❗ ❗ ❗ ❗ ❗ ❗
재시작
하지 않으면 환경 변수가 적용이 안된다!
재시작 후 확인해보면 설치 된 버전이 제대로 확인된다!
우선, poetry
를 적용시켜줄 폴더를 만들어서 vscode
를 열어준다!
아주 깨끗한 상태의 탐색기에 우리는 poetry
로 의존성 관리를 해줄 것이다.
poetry init
입력해 줄 부분은 열심히 입력하고
쓸 말이 없는 부분은 Enter
를 쳐서 넘겨주자.
끝까지 넘기면 이런게 생긴다.
[tool.poetry]
name = "poetry-todo"
version = "0.0.0"
description = "nbc drf todo list poetry"
authors = ["0v0baek <qorqor4592@gmail.com>"]
readme = "README.md"
packages = [{include = "poetry_todo"}]
[tool.poetry.dependencies]
python = "^3.11"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
들어가보면 내용이 이렇게 되어있다.
내가 아까 써준 내용들과, 아직 python
을 제외하고 tool
에 아무것도 없는 것을 알 수 있다.
poetry install
가상환경을 생성해준다.
그럼 이렇게 lock
파일이 생긴다.
pyproject.toml
파일과 poetry.lock
파일은 모두 github
에 올릴 때 같이 올려줘야 한다.
poetry shell
해당 명령어로 poetry
로 만든 가상환경을 활성화 시킬 수 있다.
활성화 시키면 venv
폴더를 만들어서 activate
해줬을 때 처럼 poetry
가상환경이 뜬다.
vscode
를 끌 때는 이 가상환경을 비활성화 시켜준 뒤 끄는 것이 좋다.
예상치 못한 충돌을 막을 수 있다.
비활성화 시켜보자.
exit
앞에 poetry 안 붙여줘도 됨.
poetry add 패키지 이름
이러면 설치된다.
기본적으로 원래 하던 명령어 앞에
poetry run
을 붙여주면 된다.
poetry run django-admin startproject 프로젝트 이름
# 현재 폴더에다 프로젝트 만들어주기
poetry run django-admin startproject 프로젝트 이름 .
poetry run python manage.py startapp 앱이름
poetry run py manage.py startapp 앱이름
# 아래 두 개 모두 똑같음.
poetry run python manage.py runserver
poetry run py manage.py runserver
잘 켜진다!
참고로 영어말고 한글로 나오게 하려면 manage.py
에서 수정하면 됨.
# settings.py
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
해당 링크 내용을 그대로 복사 붙여넣기 하면 된다.
그리고 gitignore.io 에서 다른 ignore들 추가해주는 것도 잊지말기.
dotenv
를 사용하는 방법과 secrets.json
을 사용하는 방법 두가지가 있는데
앞에 건 따로 패키지 설치를 해줘야 해서 귀찮음.
secrets.json
으로 관리해보자.
해당 위치에 secrets.json
파일을 만들어준다.
// secrets.json
{
"SECRET_KEY": "내 시크릿 키"
}
# settings.py
# 상단에 추가
import os, json
from django.core.exceptions import ImproperlyConfigured
# SECRET_KEY 위치에 해당 내용 복붙
secret_file = os.path.join(BASE_DIR, 'secrets.json') # secrets.json 파일 위치
with open(secret_file) as f:
secrets = json.loads(f.read())
def get_secret(setting, secrets=secrets):
try:
return secrets[setting]
except KeyError:
error_msg = "Set the {} environment variable".format(setting)
raise ImproperlyConfigured(error_msg)
SECRET_KEY = get_secret("SECRET_KEY") # SECRET_KEY 가져오기
이렇게 해도 잘 서버가 작동된다!
그러고 .gitignore
파일에 꼭!! secrets.json
넣어주기.