Инструкция по деплою Flask-проекта на хостинг REG.RU
Мануал по добавлению программы на Flask, предложенный REG.RU, не раскрывает все детали этого увлекательного процесса. Ниже мы в нескольких словах расширим его и предложим более подробную инструкцию, которая сэкономит вам время и нервные клетки.
!важно: наша инструкция актуальна, если вы соблюдаете архитектуру MTC (отделяете инициализацию application от routes).
Предложенная REG.RU инструкция, хорошо работает до 7-го пункта включительно. Однако далее она повествует о создании py-файлов непосредственно на хостинге (без использования git), а также об объединении application и controller в рамках одного файла.
Вот наш альтернативный путь, который мы начнем с 8-го пункта и, таким образом, расширим и дополним инструкцию по деплою, предложенную REG.RU.
- Находясь в виртуальном окружении,
(flaskenv) -bash-4.2$ ls
bin-tmp flaskenv logs php-bin php-bin-php74 tmp www
(flaskenv) -bash-4.2$
необходимо перейти в директорию www (cd www)
(flaskenv) -bash-4.2$ cd www
(flaskenv) -bash-4.2$ ls
yoursite.domain
а затем в директорию сайта (cd yoursite.domain)
(flaskenv) -bash-4.2$ cd yoursite.domain
- Клонируем репозиторий с github
(flaskenv) -bash-4.2$ git clone https://github.com/yourAccount/yourRepository.git
- После этого в директории вашего сайта в панели ispmanager на REG.RU появится папка с клонированным проектом (в нашем примере - yourRepository). Теперь важно перенести все ее содержимое в директорию домена (в нашем примере - yourSite.domain). Для этого зайдите в папку с проектом, выделите все его содержимое и нажмите кнопку "Копировать": после этого появится структура каталогов, необходимо выбрать папку с названием вашего домена и переместить туда все содержимое вашего проекта (нажав галочку напротив пункта "Перенести файлы")
- Удалить пустую папку с проектом (yourRepository)
(flaskenv) -bash-4.2$ ls
config.py models.py static yourRepository
application.py controller.py templates requirements.txt
набрав команду rmdir yourRepository/
(flaskenv) -bash-4.2$ rmdir yourRepository/
должно получиться:
(flaskenv) -bash-4.2$ ls
config.py models.py static
application.py controller.py templates requirements.txt
- Установите зависимости
(flaskenv) -bash-4.2$ pip install -r requirements.txt
- После установки зависимостей попробуйте запустить свой проект в терминале:
(flaskenv) -bash-4.2$ python application.py (вместо application.py должно быть
название вашего файла, в котором содержится команда-запуск application.run())
Если все работает корректно, остановите проект (Control+C). После этого можете закрыть терминал, он больше не понадобится.
- На ispmanager зайдите в файл, запускающий сервер (application.py; файл может называться по-разному, но нужен тот файл, в котором присутствует команда-запуска - application.run()) и перенесите импорты из конструкции if __name__ == '__main__':
Теперь вновь вернитесь к инструкции REG.RU, а именно к 10-му пункту и завершите настройку.
!важно: не забывайте при изменении файлов на хостинге перезапускать проект, как об этом говорится в конце инструкции REG.RU
Мануал подготовили Ryize, AlexanderZug