как поднять сервер на python windows

Запускаем простейший веб-сервер на Python и Flask

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Есть масса вариантов запустить собственный веб-сервер, обрабатывающий поступающие от пользователей HTTP запросы, и возвращающий результат в их браузеры. В данном примере мы рассмотрим создание такого сервера при помощи Python.

Устанавливаем нужные библиотеки

Предположим, что Python, pip и virtualenv у вас уже установлены и настроены, соответствующие статьи есть на сайте. Теперь перейдет к загрузке Flask:

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

Для проверки правильности установки, можно создать файлик server.py, в котором будет такое содержимое:

Для его выполнения воспользуйтесь командой:

С помощью Flask можно делать немало интересных штук, к примеру, осуществлять обработку GET и POST параметров.

Теперь нам нужно переработать скрипт так, чтобы он смог принять имя пользователя, а затем вывел приветствие на экране:

Мы указали, что теперь для работы скрипта будет использоваться порт 4567. Также он будет через адресную строку принимать имя от пользователя. Открываем в браузере следующий адрес: http://localhost:4567/yourname. Ответ должен быть таким: «Hello, yourname». Этим подтверждается успешная работа сервера, он вернул нужную нам строку.

Настройка прокси

Если вы хотите, чтобы вашим сайтом могли пользоваться и другие люди, вам понадобится внешний IP адрес. Разбираетесь в этом или имеете VPS? Тогда у вас не возникнет проблем с этим. Но если это для вас что-то новенькое, то прибегнем к более легкому, но не особо универсальному способу – воспользуемся прокси сервером.

Для этого нам понадобится бесплатная программка ngrok. Он занимается поддержкой постоянного соединения и доставлением вам всех данных, полученных от других людей. Запускаем ее при помощи следующей команды, в параметре указав любой незанятый порт:

Ответ должен состоять из нескольких строк, а среди них должно быть что-то такое:

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

Источник

Python. Давайте создадим простой HTTP-сервер

Главное меню » Python 3 » Python. Давайте создадим простой HTTP-сервер

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Черт возьми, вы взаимодействуете с одним прямо сейчас!

Независимо от того, какой вы разработчик программного обеспечения, в какой-то момент вашей карьеры вам придется взаимодействовать с веб-серверами. Может быть, вы создаете сервер API для бэкэнда. Или, может быть, вы просто настраиваете веб-сервер для своего сайта.

В этой статье мы расскажем, как создать самый простой http веб-сервер на Python.

Но поскольку мы хотим убедиться, что вы понимаете, что мы создаем, мы сначала дадим обзор о том, что такое веб-серверы и как они работают.

Если вы уже знаете, как работают веб-серверы, вы можете сразу перейти к этому разделу.

Что такое HTTP-сервер?

Веб-сервер HTTP – это не что иное, как процесс, который выполняется на вашем компьютере и выполняет ровно две вещи:

1- Прослушивает входящие HTTP-запросы на определенный адрес сокета TCP (IP-адрес и номер порта, о которых мы расскажем позже)

2- Обрабатывает этот запрос и отправляет ответ обратно пользователю.

Но что на самом деле происходит под капотом?

На самом деле много чего происходит, и мы могли бы посвятить целую статью, чтобы объяснить магию, как это произошло.

Но для простоты мы отвлечемся от некоторых деталей и расскажем об этом на очень высоком уровне.

На высоком уровне, когда вы набираете www.yandex.ru в своем браузере, ваш браузер создаст сетевое сообщение, называемое HTTP-запросом.

Этот запрос будет распространяться на компьютер yandex, на котором работает веб-сервер. Этот веб-сервер перехватит ваш запрос и обработает его, отвечая HTML-кодом домашней страницы yandex.

Наконец, ваш браузер отображает этот HTML на экране, и это то, что вы видите на своем экране.

Каждое взаимодействие с домашней страницей yandex после этого (например, когда вы нажимаете на ссылку) инициирует новый запрос и ответ точно так же, как первый.

Повторим еще раз: на машине, которая получает запрос http, работает программный процесс, называемый веб-сервером. Этот веб-сервер отвечает за перехват этих запросов и их обработку соответствующим образом.

Хорошо, теперь, когда вы знаете, что такое веб-сервер и какова его функция, вам может быть интересно, как запрос в первую очередь достигает машины yandex?

Позвольте нам объяснить, как, но опять же … на высоком уровне.

Адрес сокета TCP

Любое http-сообщение (будь то запрос или ответ) должно знать, как добраться до места назначения.

Чтобы достичь места назначения, каждое http-сообщение содержит адрес, называемый адресом TCP назначения.

И каждый TCP-адрес состоит из IP-адреса и номера порта.

Мы знаем, что все эти аббревиатуры (TCP, IP и т. д.) могут быть ошеломляющими, если ваши сетевые знания не сильны.

Так где же этот адрес, когда все, что вы сделали, и набрали www.yandex.ru в вашем браузере?

Ну, это доменное имя преобразуется в IP-адрес через большую распределенную базу данных, называемую DNS.

Хотите проверить, что это за IP-адрес?

Легко! Зайдите в свой терминал и сделайте следующее:

Как видите, как DNS переведет yandex.ru на любой из указанных выше адресов.

Один только IP-адрес позволит HTTP-сообщению поступить на нужный компьютер, но вам все равно нужен номер порта, чтобы HTTP-запрос поступил именно на веб-сервер.

Другими словами, веб-сервер – это обычное сетевое приложение, которое прослушивает определенный порт.

И HTTP-запрос ДОЛЖЕН быть адресован этому порту.

По умолчанию номер порта равен 80 для http и 443 для https, поэтому даже если вы не указали номер порта явно, он все еще там.

И если веб-сервер прослушивает номер порта не по умолчанию (ни 80, ни 443), вы должны явно указать номер порта следующим образом:

К настоящему времени у вас должна быть вся необходимая информация для создания http-сервера на Python.

Так что без дальнейших церемоний, давайте начнем.

Создайте простой файл HTML

Вот что мы хотим сделать.

Мы хотим создать простой http-сервер, который обслуживает статическую HTML-страницу.

Давайте создадим нашу HTML-страницу.

Теперь сохраните этот файл как index.html.

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

Создать HTTP веб-сервер

Чтобы создать веб-сервер в Python 3, вам нужно импортировать два модуля: http.server и socketserver

Обратите внимание, что в Python 2 был модуль с именем SimpleHTTPServer. Этот модуль был объединен с http.server в Python 3

Давайте посмотрим на код для создания http-сервера

Просто так у нас есть функциональный http-сервер.

Теперь давайте разберем этот код построчно.

Во-первых, как мы упоминали ранее, веб-сервер – это процесс, который прослушивает входящие запросы на определенный TCP-адрес.

И, как вы уже знаете, TCP-адрес идентифицируется по IP-адресу и номеру порта.

Во-вторых, веб-сервер также должен знать, как обрабатывать входящие запросы.

Эти входящие запросы обрабатываются специальными обработчиками. Вы можете думать о веб-сервере как о диспетчере, поступает запрос, http-сервер проверяет запрос и отправляет его назначенному обработчику.

Конечно, эти обработчики могут делать все что угодно.

Но что вы думаете, какой самый основной обработчик?

Ну, это будет обработчик, который просто обслуживает статический файл.

Другими словами, когда мы заходим на yandex.ru, веб-сервер на другом конце отправляет обратно статический HTML-файл.

Это на самом деле то, что мы пытаемся сделать.

И это, и есть то, что является http.server.SimpleHTTPRequestHandler : простой обработчик HTTP-запросов, который обслуживает файлы из текущего каталога и любых его подкаталогов.

Класс socketserver.TCPServer

Теперь поговорим о классе socketserver.TCPServer.

Экземпляр TCPServer описывает сервер, который использует протокол TCP для отправки и получения сообщений (http – это протокол прикладного уровня поверх TCP).

Чтобы создать экземпляр TCP-сервера, нам нужны две вещи:

Как видите, TCP-адрес передается в виде кортежа (IP-адрес, номер порта)

Передача пустой строки в качестве IP-адреса означает, что сервер будет прослушивать любой сетевой интерфейс (все доступные IP-адреса).

А поскольку PORT хранит значение 8080, сервер будет прослушивать входящие запросы на этот порт.

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

Ну, а как насчет serve_forever?

serve_forever – это метод в экземпляре TCPServer, который запускает сервер и начинает прослушивать и отвечать на входящие запросы.

Круто, давайте сохраним этот файл как server.py в том же каталоге, что и index.html, потому что по умолчанию SimpleHTTPRequestHandler будет искать файл с именем index.html в текущем каталоге.

В этом каталоге запустите веб-сервер:

Благодаря этому теперь у вас есть HTTP-сервер, который прослушивает любой интерфейс на порте 8080 и ожидает входящие HTTP-запросы.

Пришло время для забавных вещей!

Откройте браузер и введите localhost:8080 в адресной строке.

Потрясающие! Похоже, все работает нормально.

localhost – это имя хоста, которое означает этот компьютер. Он используется для доступа к сетевым службам, работающим на хосте, через петлевой сетевой интерфейс.

А поскольку веб-сервер прослушивает любой интерфейс, он также прослушивает интерфейс обратной связи.

Вы хотите знать, какой IP-адрес соответствует localhost?

Фактически вы можете полностью заменить localhost на 127.0.0.1 в вашем браузере, и вы все равно получите тот же результат.

Одно последнее слово

На самом деле вы можете запустить веб-сервер с python, даже не создавая никаких скриптов.

Просто зайдите в свой терминал и сделайте следующее (но убедитесь, что вы на Python 3)

По умолчанию этот сервер будет прослушивать все интерфейсы и порт 8080.

Если вы хотите прослушать определенный интерфейс, сделайте следующее:

Также начиная с Python 3.7, вы можете использовать флаг –directory для обслуживания файлов из каталога, который не обязательно является текущим каталогом.

Таким образом, теперь возникает вопрос: зачем вам когда-либо писать сценарий, когда вы можете просто вызывать сервер из терминала?

Хорошо, помните, что вы используете SimpleHTTPRequestHandler. Если вы хотите создать свои собственные обработчики (что вы, вероятно, захотите), то вы не сможете сделать это из терминала.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как установить Python и PIP на Windows 10. Настройка Python в качестве модуля веб-сервера

Язык Python является в настоящее время очень популярным и многие инструменты для сбора информации, сканирования, тестирования на проникновение, оценки безопасности написаны на Python. Все эти инструменты без проблем работают в Linux. Но на самом деле, подавляющее большинство инструментов может работать и в Windows — достаточно просто выполнить несложную установку Python.

Python — это скриптовый (интерпретируемый) язык, то есть программы перед запуском не нужно предварительно компилировать. В этом смысле Python похож на PHP.

В настоящее время существует две главных версии Python:

Они существенно различаются между собой, в том числе и синтаксисом, то есть программа, написанная на одной версии, может не работать в интерпретаторе другой версии. Тем не менее сейчас уже обозначен срок завершения поддержки Python 2.x и эту версию можно считать устаревшей. Поэтому я предлагаю установить только Python 3. Хотя если вы не согласны, то пишите в комментариях и я дополню инструкцию установкой второй версии. Хоть мы не получим старую версию, зато я дополнительно покажу, как установить PIP — систему управления пакетами Python, — а также как подключить Python в качестве модуля веб-сервера — то есть он сможет выполнять такие же функции, что и PHP.

Как установить Python в Windows

Для Python 3.x также много активно поддерживаемых веток:

Последней стабильной версией на момент написания является Python 3.8.x.

Помните, что Python не будет работать на Windows XP или более ранних.

Кстати, ведь Python есть и в магазине приложений Windows,

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

где у него одна звезда (из пяти) и один отзыв (что ничего не работает):

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Поэтому мы выполним установку с помощью официального установщика — это совсем просто.

Для скачивания установочного файла, перейдите на страницу загрузки установочных файлов для Windows: https://www.python.org/downloads/windows/

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Выберите последний выпуск Python 3, на скриншоте это Python 3.8.0.

Пролистните страницу вниз и найдите «Windows x86-64 executable installer»:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Запустите скаченный файл:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Во-первых, поставьте галочку «Add Python 3.8 to PATH». Это нужно для того, что когда вы будете запускать скрипт на Python, вам не нужно будет указывать полный путь до интерпретатора.

Во-вторых, я рекомендую изменить папку, куда будет выполнена установка. Для этого кликните «Customize installation».

В этом окне ничего не меняем, главное убедитесь, что стоит галочка напротив pip:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

В этом окне убедитесь, что стоит галочка «Add Python to environment variables» и поменяйте папку установки на «C:\Python\Python38»:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Нажмите кнопку «Install»:

И… всё готово! Согласитесь, это было реально просто.

У меня в Windows уже включена поддержка путей файлов длиной более 260 символов, но если у вас ещё это не сделано, то установщик в конце предложит это — чтобы это сделать, нажмите «Disable path length limit». Эта настройки ни на что плохо не влияет. Но нужно помнить, что старые программы по-прежнему могут быть неспособны работать с файлами, пути которых имеют более 260 символов.

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Смотрите подробности в статьях:

Для проверки, откройте командную строку: нажмите Win+x и выберите «Windows PowerShell»:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Откроется PowerShell. Если вам привычнее обычная командная строка Windows (CMD), то нажмите Win+r и введите

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

В любом из открывшихся окон введите:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Должна появится версия Python, например:

Как запускать программы Python в Windows

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

Для запуска откройте командную строку и запустите команду вида:

Пример простой программы hello_world.py:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Как начать изучать Python

Как установить PIP в Windows

PIP — это менеджер пакетов, с помощью которого можно искать, устанавливать, обновлять и удалять пакеты Python. В качестве пакетов могут быть как библиотеки, которые являются зависимостями для других программ, так и полноценные программы. Причём PIP правильно обрабатывает зависимости — если для работы программы требуется другие пакеты Python, то PIP их также установит.

В Linux некоторые пакеты Python упакованы в качестве пакетов дистрибутива и распространяются через стандартные репозитории — но таких пакетов меньше, чем доступно в pip. Поэтому в Linux программа pip также используется. Что касается Windows, то здесь pip является самым удобным способом установить нужный пакет.

При установке среды Python описанным выше способом, менеджер пакетов pip также должен установиться. Вы можете проверить это:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Обновите важные компоненты:

Установка Средства сборки C++

Это опциональный шаг при установке pip — но если вы его пропустите, при попытке установить некоторые пакеты вы будете сталкиваться с ошибками.

На самом деле, при установке пакетов с помощью pip иногда выполняется в том числе и компиляция, чтобы это происходило без проблем, необходимо ещё и установить «Средства сборки C++». Для их установки скачайте и запустите файл vs_buildtools.exe. Во вкладке «Рабочие нагрузки» поставьте галочку «Средства сборки C++» и нажмите кнопку «Установить»:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Как пользоваться PIP в Windows

Для установки выполните команду вида:

В качестве примера попробуем установить программу hashID — это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Пример запуска hashID в Windows после установки:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Подключение модуля Python к веб-серверу Apache в Windows

Python может работать как модуль Apache, в этом случае скрипты Python будут выполнятся как, например, выполняются PHP скрипты. Причём оба интерпретатора могут работать одновременно.

Подразумевается, что Python у вас установлен по вышеприведённой инструкции, а веб-сервер установлен по инструкции «Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10».

Настройка Apache на запуск Python CGI

Откройте для редактирования конфигурационный файл Apache httpd.conf, у меня он расположен по пути C:\Server\bin\Apache24\conf\httpd.conf.

Найдите там строку

и добавьте к ней ExecCGI. Должна получиться такая строка (ВНИМАНИЕ: набор опций у вас может быть другим):

Теперь найдите строку:

Раскомментируйте её, то есть удалите символ # в начале строки и добавьте к концу строки .py. Новая строка будет выглядеть примерно так:

Создайте тестовую страницу Python

В папке для ваших сайтов (у меня это C:\Server\data\htdocs\) создайте файл test.py и скопируйте в него:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Обратите внимание на самую верхнюю строку, то есть на C:\Python\Python38\python.exe — вам нужно заменить её на своё значение, указав путь до файла python.exe. Если у вас версия 3.9, то этой папкой может быть C:\Python\Python39\python.exe, то есть название папки может различаться в зависимости от установленной версии и путь до папки также может различаться в зависимости от того, какой вы выбрали при установке.

Должна будет появиться надпись

Как показано на скриншоте ниже:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Редакторы исходного кода Python

Если вы устанавливаете Python не только для запуска программ, но и для изучения языка программирования Python, то вам понадобятся редакторы исходного кода. Я могу порекомендовать парочку абсолютно бесплатных:

Решение ошибки error Microsoft Visual C++ 14.0 is required

При использовании менеджера пакетов pip на Windows вы можете столкнуться с ошибкой:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Начиная с 2017 самая новая версия Visual Studio может заменить любую требуемую версию Build Tools (инструментов сборки) C++. Для установки последней версии, скачайте и запустите файл vs_buildtools.exe. Во вкладке «Рабочие нагрузки» поставьте галочку «Средства сборки C++» и нажмите кнопку «Установить»:

как поднять сервер на python windows. Смотреть фото как поднять сервер на python windows. Смотреть картинку как поднять сервер на python windows. Картинка про как поднять сервер на python windows. Фото как поднять сервер на python windows

Дополнительно выполните обновление setuptools:

Ошибки при компиляции в Python

Иногда при установке пакетов с помощью pip вы будете сталкиваться с ошибками вроде такой:

В ней сказано, что компиляция завершилась ошибкой из-за того, что не найден файл cairo.h.

В этой ошибке сказано, что компиляция завершилась ошибкой из-за того, что не найден файл netinet/ip.h.

Точно такие же ошибки из-за отсутствия файлов с расширением .h могут возникать и в Linux. Файлы с расширением .h являются так называемыми заголовками — то есть файлами исходного кода для импорта в другие приложения. В каждом случае придётся индивидуально выяснять, к какому пакету относится отсутствующий файл и устанавливать этот пакет.

Источник

Развертывание сервера с помощью Python: от А до Я.

В этом руководстве вы узнаете, как настроить сервер и развернуть веб-приложение с нуля, используя только Python.

В этом уроке я проиллюстрирую, как настроить сервер для запуска веб-приложения без какого-либо другого инструмента, кроме Python.

В конце его у вас будет:

В те времена, когда Docker еще не существовал, я обычно настраивал серверы в облачной среде с помощью кода Python. В основном это был скрипт/проект Python, который я запускал на своей (локальной) машине, и он выполнял команды на (удаленном) сервере.

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

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

Это означает, что код выделяет детали всего, что вы должны делать на сервере, в отличие от использования Docker, где большинство деталей скрыто.

Поэтому этот пост может быть полезен по двум причинам:

Обзор учебника

Код организован в функции, где каждая функция выполняет задачу на сервере, даже если она выполняется на локальной машине.

Поэтому, прежде чем смотреть на код, стоит подумать о том, какие шаги вам нужно было бы выполнить (вручную), если бы вы не читали этот учебник.

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

Шаг 1 – Базовая конфигурация машины

Затем, поскольку вы хотите запустить приложение Python, вам необходимо настроить Python на сервере.

Большинство операционных систем поставляются с предустановленным двоичным файлом Python по умолчанию. Однако, на мой взгляд, это не очень хорошее решение.

Причина в том, что вы, возможно, разработали свое приложение с Python3.7, но тогда на сервере есть Python3.9. Все рухнет, и будет трудно понять, почему.

Вот почему в моем коде также есть конкретные инструкции по настройке правильной версии Python в 3 подшагах.

Наконец, как и в большинстве приложений Python, вы захотите создать virtualenv только для этого приложения.

Если в вашем приложении есть выделенный сервер, то есть это единственное программное обеспечение, работающее в нем, вы можете пропустить эту часть. Мой код в любом случае содержит функцию также для установки virtualenvwrapper и настройки virtualenv, предназначенного для этого приложения.

Это конец первого шага.

Шаг 2 – Установите приложение

Чтобы сервер запустил ваше приложение, это должно быть установлено! Если ваше приложение является исполняемым файлом, который можно установить, вам следует загрузить его (через curl или wget ) или скопировать его с локальной машины на удаленный сервер (через scp ).

Более распространенный случай с приложениями Python, по крайней мере для меня, – это когда для запуска приложения нам нужен исходный код. В этом случае вам нужно поместить исходный код на удаленный сервер. Есть два распространенных способа сделать это:

В своем коде я буду использовать вариант 1, поэтому я могу показать вам хороший способ, который я нашел тогда, чтобы написать код, который переключается между ветвями и фиксациями в репозитории (например, если вы хотите выполнить откат).

Шаг 3 – Запустите приложение!

Эта часть является самой простой, особенно если вы используете готовый к работе надежный веб-сервер. Я выбрал Gunicorn, но есть много альтернатив, которые одинаково просты в использовании.

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

Настройка подключения

К счастью для нас, пакет Python под названием fabric решает эту проблему. Все, что вам нужно, – это такая функция, которая создает соединение с сервером:

Объект соединения, возвращаемый этой функцией, будет использоваться во всем остальном коде.

Часть 1 подробно

В части 1 мы хотим настроить сервер на самом базовом уровне: библиотеки ОС, языки программирования и т. Д.

Ну, мы можем сделать то же самое в коде Python, благодаря объекту подключения. Вот код.

Приведенный выше код реализует три подэтапа, которые я обсуждал ранее:

Это еще одна причина, по которой я сказал, что очень важно выполнить ручное развертывание хотя бы один раз!

Часть 2 подробно

В части 2 я сказал, что мы хотим сделать две вещи:

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

Часть 3 подробно

ЛАДНО, ладно… Я делаю еще несколько вещей в коде:

И это все! Последнее, на что нам нужно обратить внимание, – это как загрузить переменные среды.

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

Я нашел пример приложения, опубликованного на GitHub компанией Digital Ocean. Я не имею к ним никакого отношения, но это выглядело хорошо для этого проекта, поэтому вы видите его в secret.py файл. Вот он:

Последний трюк!

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

Мотивация заключается в том, что иногда мне захочется запустить одну из функций, которые мы видели, и только одну. И иногда им могут понадобиться аргументы во входных данных (это относится к _pull_repo ).

Вот что я придумал два года назад.

Давайте проверим это!

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

Во-первых, я создал небольшую машину на Linode. Я не связан с ними, я просто хотел использовать другого поставщика, так как код приложения принадлежит Digital Ocean.

Самая маленькая машина на Linode стоит 5 долларов (у других поставщиков такая же цена), и весь тест длился менее 5 минут, поэтому я потратил всего несколько центов. Я выбрал Debian 10 в качестве ОС.

Затем я скопировал хост, имя пользователя и пароль root из консоли Linode в secret.py файл.

Затем я загрузил Github gist, сохранив то же имя файла azPyDeploy.py в том же каталоге, где secret.py есть.

И, наконец, я выполнил четыре простые команды.

Первый занял несколько минут (помните, что он компилирует и устанавливает Python), и когда все было сделано, веб-приложение работало на сервере!!

Заключительные комментарии и код

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

Если по какой-то причине вы не можете использовать больше автоматизированных систем, то проект в этом руководстве может быть полезен.

Вот полный код, на случай, если gist не сработает.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *