MOTI #4. 장고 어드민 버전 업데이트하기 (Poetry 전환) / ChatGPT 에서 질문 추천받아 추가하기
안녕하세요, 모티 개발자 다람쥐입니다.
최근에 질문을 보충하는 작업을 했습니다.
장고 어드민에서 질문을 추가했었는데요~
헤로쿠에서 무료로 이용할 수 있는 기간이 끝나
로컬로 어드민 서버를 띄우는 수 밖에 없었어요.
장고 어드민 버전 업데이트하기
Poetry 전환 배경
오래된 장고 어드민 프로젝트를 열어 실행을 해봤지만,
패키지 설치 오류가 계속 발생했습니다. 😭😭
패키지 버전 간 종속성 오류가 해결되지 않는 이슈로 보였어요.
다른 패키지의 Django 의존성이 올라간 것으로 보이고
Django 버전을 어디까지 업그레이드할 지 찾아야 했는데요.
귀찮아서... 그냥 Django 5 버전으로 올려버렸습니다.
그러나 Django 5 버전이 업데이트 되지 않기도 하고,
이전에 설치할 패키지 버전을 모두 최신(*)으로 설정했다보니 문제를 찾기가 힘들었습니다.
또 Pipenv 도구가 영 시원치 않긴 했어가지고
이번 기회에 Poetry 로도 전환했습니다.
Pipenv 도구가 가상 환경도 지원하고, 파이썬 버전도 자유롭게 이용할 수 있는 장점이 있습니다.
또한 requirements.txt 보다 풍부하게 패키지 파일 관리도 할 수 있는데요.
패키지를 Lock 하고 패키지 간 의존성을 설치하는 과정에서 이래저래 이슈가 있기도 합니다.
속도가 오래 걸리기도 하고요.
반면, Poetry 는 의존성 문제를 잘 해결하며, 설치 속도가 빠르다는 특징이 있습니다.
CLI 기능도 가독성이 좋은 것도 한 몫 합니다.
$ poetry show --tree
django 5.0.6 A high-level Python web framework that encourages rapid development and clean, pragmatic design.
├── asgiref >=3.7.0,<4
├── sqlparse >=0.3.1
└── tzdata *
django-admin-rangefilter 0.13.0 django-admin-rangefilter app, add the filter by a custom date range on the admin UI.
django-debug-toolbar 4.4.2 A configurable set of panels that display various debug information about the current request/response.
├── django >=4.2.9
│ ├── asgiref >=3.7.0,<4
│ ├── sqlparse >=0.3.1
│ └── tzdata *
└── sqlparse >=0.2
gunicorn 22.0.0 WSGI HTTP Server for UNIX
└── packaging *
mysqlclient 2.2.4 Python interface to MySQL
pylint 3.2.3 python code static checker
├── astroid >=3.2.2,<=3.3.0-dev0
├── colorama >=0.4.5
├── dill >=0.3.7
├── isort >=4.2.5,<5.13.0 || >5.13.0,<6
├── mccabe >=0.6,<0.8
├── platformdirs >=2.2.0
└── tomlkit >=0.10.1
python-dotenv 1.0.1 Read key-value pairs from a .env file and set them as environment variables
whitenoise 6.7.0 Radically simplified static file serving for WSGI applications
Poetry 설치
pipx 를 brew 로 설치했습니다.
그 다음 poetry 를 설치합니다.
$ brew install pipx
$ pipx install poetry
$ poetry init
그 다음 poetry add 으로 필요한 라이브러리를 추가합니다.
poetry.lock 파일과 pyproject.toml 파일로 패키지 버전을 관리합니다.
이번엔 버전을 명시했습니다.
시간이 지나도 설치가 되게끔 하기 위함이었어요.
[tool.poetry]
name = "moti-admin"
version = "0.1.0"
description = ""
authors = ["kor-Chipmunk <rhj4862@gmail.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.12"
django = "^5.0.6"
python-dotenv = "^1.0.1"
django-admin-rangefilter = "^0.13.0"
gunicorn = "^22.0.0"
whitenoise = "^6.7.0"
pylint = "^3.2.3"
django-debug-toolbar = "^4.4.2"
mysqlclient = "^2.2.4"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
그다음 .env 환경 설정 파일을 편집했습니다.
MYSQL_NAME=motidb
MYSQL_USER=moti
MYSQL_PASSWORD=XXX
MYSQL_HOST=moti-prod.XXXXX.ap-northeast-2.rds.amazonaws.com
MYSQL_PORT=3306
SECRET_KEY=SECRET_KEY
장고 어드민을 실행했습니다.
poetry run 으로 가상환경 실행까지 지원합니다.
$ poetry run python manage.py runserver --settings=app.settings.production
장고 버전이 올라감에 따라 정적파일이 달라졌습니다.
어드민 화면이 깨지더라고요.
아래 명령어로 다시 정적파일을 재생성했습니다.
$ poetry run python manage.py collectstatic --settings=app.settings.production
🙋🏻♀️ : 다양한 질문을 추가해주세요~
모티 유저는 하루를 돌아볼 수 있는 질문을 받습니다.
최근에 유저의 요청이 있었습니다.
주제를 더 추가해달라는 요청이었는데요.
하루를 더 돌아볼 수 있는 다양한 주제를 보충했습니다.
예전에는 질문이 담긴 도서를 참고했는데요.
이번에는 ChatGPT AI 도구를 활용했습니다.
일상, 감정과 기분, 성취와 목표, 관계와 소통, 자유로운 주제의 질문을 추천했습니다.
이를 토대로 질문을 추가했습니다.
추가로 글, 사진을 요구하는 질문을 분류했습니다.
총 38건의 질문을 신규 추가했네요.
최근까지 유저분들이 이용해 주셔서 감사하네요.
더 나은 모티가 되도록 노력 중입니다. :)