Отладка контейнеризованного приложения Django в PyCharm
Разработка вашего приложения на Django в Docker может быть очень удобной. Вам не нужно устанавливать дополнительные сервисы, такие как Postgres, Nginx, Redis и т.д., на свой компьютер. Это также значительно облегчает начинающему разработчику быстрый ввод в эксплуатацию.
Однако трава не всегда зеленее. Запуск Django в Docker может создать некоторые проблемы и усложнить то, что когда-то было простым. Например, как вы устанавливаете точки останова в своем коде и выполняете отладку?
В этом кратком руководстве мы рассмотрим, как PyCharm приходит на помощь с помощью удаленного интерпретатора и интеграции с Docker, чтобы упростить отладку контейнеризованного приложения Django.
В этом посте используется Профессиональная версия PyCharm версии 2021.2.2. Чтобы узнать о различиях между профессиональной и общедоступной (бесплатной) версиями PyCharm, ознакомьтесь с Руководство для профессионалов и сообщества - Сравнение изданий.
Цели
К концу этого урока вы должны уметь делать следующее в PyCharm:
- Настройка параметров Docker
- Настройка удаленного интерпретатора
- Создайте конфигурацию запуска/отладки для отладки приложения Django, работающего внутри Docker
Настройки Docker в PyCharm
Первый шаг, который нам нужно сделать, это указать PyCharm, как подключиться к Docker. Для этого откройте настройки PyCharm (PyCharm > Preferences
для пользователей Mac или File > Settings
для пользователей Windows и Linux), а затем разверните параметр "Сборка, выполнение, развертывание". Нажмите "Docker", а затем нажмите кнопку "+", чтобы создать новую конфигурацию Docker.
Для Mac выберите параметры Docker for Mac
. Затем примените изменения.
Настройка удаленного интерпретатора
Теперь, когда мы настроили конфигурацию Docker, пришло время настроить Docker Compose в качестве удаленного интерпретатора. Предполагая, что у вас открыт проект, снова откройте настройки и разверните параметр "Проект: <your-project-name>
" и нажмите "Интерпретатор Python". Щелкните значок шестеренки и выберите "Добавить".
В следующем диалоговом окне выберите "Docker Compose" на левой панели и выберите конфигурацию Docker, которую вы создали на предыдущих шагах, в поле "Сервер". Поле "Файлы конфигурации" должно указывать на ваш файл Docker Compose, в то время как поле "Сервис" должно указывать на службу веб-приложения из вашего файла Docker Compose.
Например, если ваш файл Docker Compose выглядит следующим образом, то вам нужно указать на службу web
:
version: '3.7'
services:
web:
build: ./app
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app/
ports:
- 8008:8000
env_file:
- ./.env.dev
depends_on:
- db
db:
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=hello_django
- POSTGRES_PASSWORD=hello_django
- POSTGRES_DB=hello_django_dev
volumes:
postgres_data:
Отладчик подключается непосредственно к веб-службе. Все остальные службы в вашем файле Docker Compose запустятся, когда мы позже запустим конфигурацию в PyCharm
Нажмите "ОК", чтобы применить изменения.
Вернувшись в диалоговое окно настройки "Интерпретатор Python", вы должны увидеть, что в проекте установлен правильный удаленный интерпретатор.
Закройте настройки.
Создайте конфигурацию запуска/отладки
Теперь, когда мы настроили PyCharm для подключения к Docker и создали конфигурацию удаленного интерпретатора на основе файла Docker Compose, мы можем создать конфигурацию запуска/отладки.
Нажмите на кнопку "Добавить конфигурацию..." в верхней части окна PyCharm.
Затем нажмите кнопку "+" и выберите "Сервер Django".
Присвойте конфигурации имя. В этом диалоговом окне настройки важно задать для поля "Хост" значение 0.0.0.0
.
Нажмите "ОК", чтобы сохранить конфигурацию. Теперь мы можем видеть конфигурацию запуска/отладки в верхней части окна PyCharm и то, что кнопки (для запуска, отладки и т.д.) включены.
Если вы теперь установите точки останова в своем приложении Django и нажмете кнопку отладки рядом с настройкой запуска/отладки, вы сможете отладить приложение Django, запущенное внутри контейнера Docker.
Заключение
В этом руководстве мы показали вам, как настроить PyCharm для отладки приложения Django, работающего внутри Docker. Благодаря этому теперь вы можете не только отлаживать свои представления и модели, но и устанавливать точки останова и отлаживать код шаблона.
Вернуться на верх