1
5

Оценить

Статьи читать 10 мин 5 6 голосов 171

Советы по старту проекта на Django и Docker

Данная статья подойдет начинающим разработчикам, которые имеют опыт разработки, но все еще не до конца понимают, что должно входить в проект.

Тут я собрал небольшую выжимку вещей, которые делают на реальных проектах, таких как проверка качества кода, запуск тестов, добавление пакетного менеджера и докера.

Кроме того, статья подойдет не только начинающим разработчикам, которые проходят изучение python с нуля онлайн, но и более опытным специалистам, которые могут не знать некоторые особенности инструментов.

Создание проекта

Для начала создаем папку, в которой разместим проектные файлы.

После этого устанавливаем Poetry для хранения пакетов. Преимущество Poetry над голым pip состоит в том, что он создает два файла.

В первом Poetry хранит только пакеты, которые разработчик устанавливает непосредственно командой установки. Во втором — зафиксированные версии и дочерние библиотеки, на которые не нужно обращать внимание.

Далее создаем проект через Джанго команду.

Структура проекта

На данный момент структура будет выглядеть следующим образом:

Стандартная структура проекта мне не особо нравится для дальнейшей разработки, поэтому я советую ее немного изменить таким обраом:

Отдельная папка под settings нужна для того, чтобы хранить разные настройки для разного окружения (dev, stage, prod).

Также обязательно надо добавить .gitignore в корень проекта. Готовых файлов .gitignore в интернете полно, как пример: https://github.com/github/gitignore/blob/master/Python.gitignore.

Но не забываем добавить игнор файлов вашей IDE.

Тесты

В качестве запуска тестов можно использовать стандартную команду Django в manage.py.

Или, если хочется, можно установить дополнительно pytest, эта библиотека, так же как и unittest, умеет запускать тесты в стиле unittest, но для меня она имеет чуть больший функционал.

Проверка кода

В каждом хорошем проекте используют линтеры для проверки качества кода, я советую ставить базовые:

  • isort
    • Проверка порядка импорта модулей

  • prospector
    • Проверка кода на предмет синтаксических и логических ошибок

И также хочу обратить ваше внимание на библиотеку black https://github.com/psf/black.

Она не проверяет код, а форматирует по регламенту pep8.

Docker

Далее для оптимизации разработки и поставки программного кода на сервера используем Docker.

Чуть ниже привел два примера Dockerfile и docker-compose.yml. Нет смысла перечислять, что делает каждая строчка, скажу только одно — в ports лучше всегда указывать на вход 127.0.0.1, чтобы только из локального компьютера запросы могли лететь в Docker.

Dockerfile

docker-compose.yml

Makefile

И вишенкой на торте я всегда добавляю в каждый проект Makefile: https://gist.github.com/valeriiduz/180d1e02af03f21fcd38281720c4543f.

Прелесть его состоит в том, что он позволяет сократить длинные команды Докера. При этом устанавливать его не надо, поскольку он входит в поставку любой линукс системы.

Как пример, чтобы запустить Докер контейнеры, нужно прописать следующую команду:

Можно записать данную команду в Makefile:

И далее в консоли можно просто прописывать:

Похожие материалы

Подпишитесь на рассылку
Компьютерной школы Hillel

Вы получите:

  • Информацию о полезных отраслевых мероприятиях
  • Интересные статьи IT-сферы
  • Новости Компьютерной школы Hillel