Django 프로젝트용 Makefile
이러한 명령에 대한 단축키가 있으면 유용합니다. 그리고 프로젝트의 다른 개발자들과 공유하는 것이 더 좋습니다. 이 목표를 위해 Makefile 을 사용합니다. 다음은 Django 프로젝트에 유용한 명령 목록입니다.
종속성 설치
나는 Poetry의 열렬한 팬이 아닙니다. 그것은 Dependabot과 함께 some problems을 가지고 있으며 Renovate과 전혀 놀지 않습니다. pip-tools을 로컬 및 프로덕션 환경에 대해 별도의 requirements.in
및 requirements-dev.in
와 함께 사용합니다.
pip-install-dev:
pip install --upgrade pip pip-tools
pip-sync requirements.txt requirements-dev.txt
pip-install:
pip install --upgrade pip pip-tools
pip-sync requirements.txt
pip-update:
pip install --upgrade pip pip-tools
pip-compile requirements.in
pip-compile requirements-dev.in
pip-sync requirements.txt requirements-dev.txt
명령:
pip-install-dev
: 로컬을 포함하여 모든 요구 사항을 설치합니다. 프로젝트의 의존성을 설치하기 위한 메인 명령어이므로 이 명령어를 맨 위에 두었습니다.pip-install
- 저는 이 명령을 자주 사용하지 않지만 프로덕션 종속성에서만 코드를 실행하는 것이 도움이 될 수 있습니다.pip-update
requirements.txt
또는requirements-dev.txt
에 새 패키지를 추가한 후requirements.in
및requirements-dev.in
를 업데이트합니다.
프로젝트 실행
server:
python manage.py migrate && python manage.py runserver
worker:
python -m celery -A project_name worker --loglevel info
beat:
python -m celery -A project_name beat --loglevel info
그건 분명한 사실입니다. 로컬 웹 서버를 실행하는 명령 및 Celery . 또한 서버를 실행할 때 자동으로 새로운 마이그레이션을 적용하는 것을 좋아합니다.
린터 실행
lint:
flake8 palyanytsya
mypy palyanytsya
black:
python -m black palyanytsya
cleanimports:
isort .
autoflake -r -i --remove-all-unused-imports --ignore-init-module-imports project_name
clean-lint: cleanimports black lint
checkmigrations:
python manage.py makemigrations --check --no-input --dry-run
명령:
lint
: flake8 linter 및 mypy 유형 검사기를 실행합니다.black
: Black을 사용한 자동 코드 서식 지정.cleanimports
: isort을 실행하고 Autoflake을 사용하여 사용하지 않은 가져오기를 제거합니다. 블랙과의 충돌을 피하기 위해 isort 설정에서profile=black
를 설정하십시오.clean-lint
: 위의 모든 항목을 실행합니다. 코드 형식을 올바르게 지정하기 전에 이 명령을 실행할 수 있습니다.checkmigrations
: 마이그레이션 없이 모델 변경을 커밋할 수 없습니다. 정말 멋진 물건!
또한 CI 파이프라인과 git 사전 커밋 후크에서 make lint && make checkmigrations
를 사용합니다. 이러한 후크를 설정하기 위한 명령을 만들 수도 있습니다.
install-hooks:
echo "make lint && make checkmigrations" > .git/hooks/pre-commit && chmod 777 .git/hooks/pre-commit
테스트 실행
test:
pytest -n 4 -x
pytest을 사용하여 다중 프로세스 모드에서 실행합니다pytest-xdist.
메시지 컴파일
messages:
python manage.py makemessages --all --ignore=venv --extension html,py
python manage.py translate_messages -s en -l uk -l es -u
python manage.py compilemessages --ignore venv
translation에 대한 모든 문자열 리터럴을 수집합니다. 또한 Google 번역을 사용하여 구문을 자동으로 번역하는 데 Django Autotranslate을 사용합니다.
끝
프로젝트가 진행되는 한 새로운 로컬 명령이 나타납니다. 어쩌면 파이썬 코드를 실행하기 위해 dev 서버에 쉘을 넣어야 할 수도 있습니다. 또는 로컬 버그 재생산을 위해 새로운 데이터베이스 덤프(민감한 데이터 제외)를 다운로드하십시오. 이 지식은 머리가 아닌 코드베이스에 보관하는 것이 좋습니다. 또한 동료에게 정확히 동일한 작업을 수행하는 방법을 설명할 필요가 없습니다.
보다 복잡한 작업의 경우 쉘 스크립트를 만들고 Makefile에서 호출할 수도 있습니다. 따라서 다른 개발자를 위해 이 새로운 명령을 찾는 것이 더 쉬울 것입니다.
Reference
이 문제에 관하여(Django 프로젝트용 Makefile), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/daiquiri_team/makefile-for-your-django-project-577n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)