POETRY setting
먼저 새 프로젝트를 만들어준다
poetry new poetry-demo
그럼 이와같은 파일구조가 생성되는데
중요한건 이거다
pyproject.toml
파일로 종속성 관리를 해주는것이다
필요에 따라서 초기화를 시켜줘도 무관하다
# 초기화 명령어
poetry init
poetry env use py
이 명령어를 실행시킴켠 .venv
가 생긴걸 알수 있다(path가 연결되어있을시)
(window)기준
source .venv/scripts/activate
기본적으로 두가지 방법이 있는데
poetry add 'package name'
명령어 사용으로 추가하는 방법과
pyproject.toml
에 직접 추가해주는 방법이다
현재 drf프로젝트 공부중이니 관련 패키지를 넣어보겠다
이렇게 넣어주고 나면 poetry.lock
에 업데이트 해주어야 한다
poetry update
이와같이 모든 필요패키지가 다 같이 딸려왔다
pyproject.toml
에는 각각 패키지의 이름들만 들어있다면 이곳에는 딸려있는 가족들이 모두 보인다
DRF setting
간단하게 기본세팅만 해보자
django-admin startproject 'project name' .
여기서 .
은 현재디렉토리에서 만든다는 뜻이다
설정해주지 않으면 작업하기 위해 매일 실행때마다 py manage.py
명령어를 사용하기 위해 cd
로 일일이 옮겨줘야 하는 대참사가 날수있기때문에 꼭 잊지말자
py manage.py runserver
아무튼 기본페이지까지 나왔으니 성공이다
가상환경설정과 poetry 기본프로젝트세팅 등등 여러번 시도해본결과 이 방법이 제일무난한듯 하다
가상환경 설정이 현재 디렉토리에서 설정하는 방법으로 하긴 했는데 path에 설정해주는 방법도 있긴하다
(이건 나중에 다시 시도해보는걸로)
시크릿키는 매우 중요하기 때문에 유출되면 절대 안된다
그렇기에 숨겨줘야하는데 여러 방법중에 .json
을 활용해보겠다
.env
로 관리도 있지만 이는 django-dotenv
를 설치해줘야한다
먼저 .json
파일을 만들어준뒤(파일명은 무관하다)
내부에 시크릿키를 넣어준다
{
"SECRET_KEY": "해당키"
}
그다음 settings.py 에 가자
import json
import os
from django.core.exceptions import ImproperlyConfigured
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
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")
이 내용을 시크릿키가 있던 내용을 지워주고 대신 넣어준다
그리고 작동테스트는 역시
py manage.py runserver
한국어로 나오는것은 settings.py
에 있는 언어와 지역설정을
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Korea'
이렇게 바꿔준 탓이다
이러면 기본세팅은 완전히 끝났다
이제 다음으로 앱들을 만들고 구현해주면 된다(내일부터 할꼬얌)
TIP
먼저 cmd나 powershell, zsh같이 터미널로 미리 세팅을 해주고 그다음 vscode같은 편집기를 실행시켜 나머지 작업을 해주는게 매우 편할것이다
django
프로젝트 세팅시에 끝에 .
을 붙이는것처럼 현재 디렉토리에 만드는것을 시도해보았으나 안된다
저 .
을 arguments
로 인식하는듯 하다
바로옆에 붙여보았더니 그냥 무시한다
몇가지 테스트를 해본 결과 poetry
로 생성된 프로젝트 안에서 다른 작업들이 이루어져야 가상환경이 제대로 설정되어있는지 확인하라는 잔소리를 안듣는다
이 외의 모든 내용은 공식문서를 참고하자
POETRY GIT관리
POETRY github
~이곳에 보면 gitignore설정을 어떻게 해야하는지 나와있다
.gitignore
에서 필요한내용들을 넣고 바깥으로 뺴는데 가장 상단에 기본적으로 모든 파일을 뜻하는 *
이 있을것이다
이를 지워줘야 한다
간혹 .gitignore
에서 넣었는데도 잘 적용이 안되는 경우가 있다
이에 대해서는 조금더 알아봐야할듯 싶다
아무튼 주의하자
push
하기 전에 git status
로 스테이징된 파일들을 확인 후 커밋/푸시를 하는것이 좋다