2023.04.25(POETRY로 DRF프로젝트 세팅)

Vinyl Stage·2023년 4월 25일
0

개발일지

목록 보기
39/42
post-thumbnail

POETRY setting

  1. poetry setting

먼저 새 프로젝트를 만들어준다

poetry new poetry-demo


그럼 이와같은 파일구조가 생성되는데

중요한건 이거다

pyproject.toml파일로 종속성 관리를 해주는것이다

필요에 따라서 초기화를 시켜줘도 무관하다

# 초기화 명령어

poetry init
  1. 가상환경
poetry env use py

이 명령어를 실행시킴켠 .venv가 생긴걸 알수 있다(path가 연결되어있을시)

(window)기준

source .venv/scripts/activate
  1. 종속성 관리

기본적으로 두가지 방법이 있는데

poetry add 'package name'

명령어 사용으로 추가하는 방법과

pyproject.toml에 직접 추가해주는 방법이다

현재 drf프로젝트 공부중이니 관련 패키지를 넣어보겠다

이렇게 넣어주고 나면 poetry.lock에 업데이트 해주어야 한다

poetry update

이와같이 모든 필요패키지가 다 같이 딸려왔다

pyproject.toml에는 각각 패키지의 이름들만 들어있다면 이곳에는 딸려있는 가족들이 모두 보인다

DRF setting

  1. django

간단하게 기본세팅만 해보자

django-admin startproject 'project name' .

여기서 .은 현재디렉토리에서 만든다는 뜻이다
설정해주지 않으면 작업하기 위해 매일 실행때마다 py manage.py 명령어를 사용하기 위해 cd로 일일이 옮겨줘야 하는 대참사가 날수있기때문에 꼭 잊지말자

py manage.py runserver

아무튼 기본페이지까지 나왔으니 성공이다

가상환경설정과 poetry 기본프로젝트세팅 등등 여러번 시도해본결과 이 방법이 제일무난한듯 하다

가상환경 설정이 현재 디렉토리에서 설정하는 방법으로 하긴 했는데 path에 설정해주는 방법도 있긴하다
(이건 나중에 다시 시도해보는걸로)

  1. secret key

시크릿키는 매우 중요하기 때문에 유출되면 절대 안된다

그렇기에 숨겨줘야하는데 여러 방법중에 .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로 스테이징된 파일들을 확인 후 커밋/푸시를 하는것이 좋다

내프로젝트

profile
Life is Art

0개의 댓글