На этой странице представлю начальные шаги для создания нового python проекта.
Что требуется от вас?
Требуется установка следующих программ:
- Python
- IDE для Python
- Docker
- Git
- Space
- основы HTTP
Python
Python подойдет любой версии, которую поддерживают библиотеки и фреймворки проекта.
Здесь
можно посмотреть все доступные версии.
IDE
IDE для Python - я советую VS Code
или PyCharm
(последний может быть доступен по студенческой лицензии).
Подойдет любая другая удобная вам IDE на которой можно запускать Python код.
Docker
Docker
необходим для запуска проекта на серверах.
При подготовке проекта к развертыванию на серверах требуется написать Dockerfile для своего проекта, проверить этот файл (корректное создание контейнера) и поместить этот файл в репозитории.
Для понимания Docker можно посмотреть видео
, почитать доку(англ)
, доку(англ)
, статья(англ)
.
Git и Space
Git используется для введения списка изменений. Space является репозиторием dl.gsu.by.
Про git можно почитать тут
.
Про Space можно почитать тут(англ)
. Вкратце, для dl.gsu.by это одно место со всеми исходными кодами всех проектов.
Space можно установить, а можно пользоваться веб версией
.
HTTP
Про HTTP можно почитать тут
.
Стадии развития проекта
Для начала требуется попросить завести вам репозиторий для вашего проекта.
После этого начинаем кодить. После того, как вы протестировали проект и сделали из него то, что планировали, вы можете его опубликовать на серверах dl. Для этого требуется:
- создать Dockerfile (если вы этого еще не сделали) и протестировать корректность создания контейнера
- залить все файлы в свой репозиторий на Space (лучше сразу, после того, как внесли изменение в любой файл документировать в коммите это изменение)
- написать Михаилу Семеновичу письмо о готовности опубликовать проект
Особенности, или инструкция как сэкономить время себе и другим
В этом разделе собраны и будут собираться все особенности публикации проекта.
Обработка URL ведется начиная с префикса названия вашего проекта
Покажу на примере:
Допустим ваш проект называется newproject.
Если вы хотите добавить какой-то функционал по адресу /user/profile/1, то перед публикацией на dl этот URL должен быть преобразован в /newproject/user/profile/1.
Все пути запросов, отправляемые в ваш проект (контейнер) будут начинаться с /newporject. Благодаря этому осуществляется перенаправление запросов в нужные контейнеры.
Из URL в запросе /newproject не убирается.
Пути решения:
Можно завести в файле конфиге проекта поле с префиксом для всех URL, а в обработчиках добавлять к URL этот префикс. Так же, если фреймворк позволяет, указать в приложении явно глобальный префикс для всех URL.
Proxy
Вся коммуникация с внешним миром идёт через https-прокси, поэтому в приложении обязательно уметь и использовать прокси (обязательно с поддержкой http basic auth), который будет передан контейнеру через переменные окружения HTTP_PROXY и HTTPS_PROXY. По-умолчанию имеет слелующий формат HTTPS_PROXY=%username:%password@%proxy_host:$proxy_port. В ETR передано именно в этом формате и работает.
Если есть команды в RUN (имеется ввиду в Dockerfile), утилита так же должна уметь работать с http proxy. Опять же, наличие вышеуказанных переменных вполне достаточно, 90% приложений под linux понимают именно этот формат и его стараются унифицировать, хотя бывают исключения. В основном это приложения на java и пакетные менеджеры (напр apt, yum).