21.12.28 민석 님이 해주신 Poetry로 Django앱 초기설정 + MySQL연동

2021. 12. 29. 23:32작업/Ubuntu

21.12.28 poetry는 로컬에다가 깔았다. 가상환경이 아닌

mySQL도 로컬에다 깔아도 될듯.

 

- Poetry 적용 방법

 

일단 bash shell에서
내가 원하는 디렉토리에 접근해서 poetry init해서 만듬.
그다음, 생성된거 확인하면 code . 로 vs code킴.
그리고 터미널 켜서 poetry shell로 ‘가상환경’을 킴.
그 다음, shell해서 나온 경로를 interpreter 경로로 지정해서 
새 bash shell열때마다 자동으로 가상환경이 켜지게끔 설정해줌.
그 다음 poetry add xxx로 외부라이브러리 import해줌. 특정 버전으로 하고싶으면 
Django==3.2.6이렇게.
그 다음 장고 프로젝트 만드려면 일단 내가 구상하는 디렉토리를 만든 다음에, 거기다가
Django-admin startproject config . 이렇게 해서 ‘config’ 폴더만 만들어줌.
app 만드는건 디렉토리 들어간 다음 Django-admin startapp appName으로 만들어 주면 됨.

 

접속해보면
아직 가상환경은 아니죠?
이제 가상환경에 접속이 됐습니다.
근데 이게 poetry shell을 매번 쳐서 가상환경 접속하는거보다 
실행 interpreter path를 
/home/ysy/.cache/pypoetry/virtualenvs/ex1-G5D5GqAJ-py3.8/bin/
이렇게 shell 실행하면 나오는 상대 경로로 지정하면 편하거든요
한번 보여드릴게요

비슷합니다 근데 pip로 관리하기도 힘들고, 예를 들어서

이렇게 장고를 깔았죠
그럼 보시면 장고뿐만 아니라 장고에 연결된 필수 라이브러리들도 같이 import돼요
pip나 pytz나 sqlparse나 이런거요
근데 venv로 requirements로 관리를하면
이런거에 대한 의존성을 몰라요 뭘 깔아야 되는건지.
질문하세요
그건 장고를 실행하기위한 필수 라이브러리라 장고를 깔때 강제해주는거에요
근데 이런거 까는게 점점 많아질수록
우리는 모르잖아요 뭘 깔았더라?
list하면 그냥 쭈루룩 다 나오니까요.
근데 poetry를 보면 
장고가 package로 있고
밑에 package.dependencies 보이시나요?
이게 장고를 깔면서 의존성있는 라이브러리들을 같이 깔았다고 표시해준거에요
자동 문서화돼서 poetry lock에 저장됩니다.

이거 같은 경우는 poetry와 파이썬 툴들이 뭐뭐 깔렸는지 알려주는거고용
그래서 실제로 이 두개 파일만 똑같이 복붙해볼게요 한번 requirements.txt랑 동일하게 작동합니다

남의 poetry를 받아온 경우엔
poetry install만 해주면 다 깔아줍니다 알아서

키는 방법이 2가지 있어요
1. 터미널 켜고 poetry shell 한다. 방금 보여드린거.
2.이렇게 하면
안켜져있죠?
새 bash shell 만들면 자동으로 가상환경 path 찾아서 실행해줍니다

 

- 개발환경 협업 시 동일하게 만들기

flake8 black isort
이런게 개발환경 똑같이 만들어주는거거든요 라이브러리 이런게 아니라
만약에 코드 한줄에 몇글자까지 허용해 줄건지, 줄바꿈 어떻게 해줄건지
import 순서 어떻게 할건지 이런거 자동 설정해주는 라이브러리들이에요

Ctrl Shift P Python Interpreter 고르기