Основним завданням веб-сервера є обробка HTTP-запитів від клієнта. Він чекає HTTP-запитів, що надходять з певної IP-адреси та номера порту, обробляє запит і відправляє відповідь клієнта назад. Python використовує SimpleHTTPServer модуль для миттєвого створення веб-сервера та легкого обслуговування вмісту файлу з сервера. Він також може використовуватися для спільного використання файлів. Для цього потрібно ввімкнути цей модуль із розташуванням спільних файлів. Цей модуль постачається з інтерпретатором Python. Не потрібно його встановлювати. Оскільки цей модуль об'єднано з http.сервер модуль в python3, тож вам доведеться запустити http.сервер запустити веб-сервер у python3. Як веб-сервер може використовуватися для обробки запитів HTTP та обміну файлами, було показано в цьому посібнику.
Запустіть веб-сервер із терміналу
Виконайте наступну команду для запуску веб-сервера з терміналу. Якщо в команді не вказано номер порту, веб-сервер за замовчуванням почне роботу з порту 8000.
$ python3 -m http.сервер
Наступний результат з’явиться, якщо веб-сервер буде запущено належним чином. Для зупинки сервера натискається CTRL + C.
Виконайте таку команду, щоб запустити веб-сервер з порту 8080.
Наступний вивід з’явиться, якщо веб-сервер запущено через порт 8080.
Запустіть веб-сервер, використовуючи скрипт Python
Виконайте наступні команди, щоб створити папку з іменем веб і перейдіть до папки. Усі файли сценаріїв та файли HTML цього підручника будуть створені всередині цієї папки.
$ mkdir web$ cd веб
Створіть файл HTML з іменем testHTML.html всередині веб з наступним сценарієм. Цей файл буде подано з веб-сервера пізніше.
testHTML.html
Перевірте веб-сервер Python
Вітання! Ваш веб-сервер успішно працює.
Відвідайте LinuxHint.ком для отримання додаткових посібників з Python
Приклад-1: Запустіть веб-сервер із вказаним номером порту
Створіть файл python з таким сценарієм, щоб запустити веб-сервер на порту 8008. http.сервер модуль імпортовано для запуску веб-сервера, а файл SocketServer модуль імпортований для обробки HTTP-запиту, що надходить з порту 8080. Об’єкт з іменем Обробник створено для обробки запитів HTTP. назавжди () функція викликається для запуску веб-сервера. У сценарій не додано жодної умови припинення. Отже, скрипт генерує помилку, коли користувач намагається зупинити сервер.
# Імпортувати серверний модульімпортувати http.сервер
# Імпортувати модуль SocketServer
імпортувати сервер сокетів
# Встановіть номер порту
порт = 8080
# Створити об’єкт для обробки HTTP-запитів
Обробник = http.сервер.SimpleHTTPRequestHandler
# Запустіть сервер назавжди для обробки запитів HTTP
з сервером сокетів.TCPServer (("", порт), обробник) як httpd:
print ("Веб-сервер працює на http: // localhost:% s"% порт)
httpd.serve_forever ()
Вихідні дані
Наступний результат з’явиться після виконання вищезазначеного сценарію.
Список файлів і папок, де знаходиться сценарій, буде показано, якщо вказану нижче URL-адресу виконано з браузера.
Якщо користувач натискає CTRL + C з терміналу або натискає кнопку зупинки з редактора PyCharm, відобразиться таке повідомлення про помилку. Цю проблему вирішено в наступному прикладі цього посібника.
Приклад-2: Запустіть веб-сервер із номером порту, визначеним командним рядком
Створіть файл python з таким сценарієм для запуску веб-сервера на певному порту, якщо аргумент командного рядка вказує номер порту; інакше 5000 буде використовуватися як порт за замовчуванням. sys модуль імпортований у сценарій для читання значень аргументів командного рядка. спробуй-крім блок був доданий у сценарій для обробки помилки, коли користувач намагається зупинити сервер. Якщо після запуску сервера з'являється виняток KeyboardInterrupt, тоді файл закрити () буде викликана функція зупинки веб-сервера.
# Імпортувати серверний модульімпортувати http.сервер
# Імпортувати модуль SocketServer
імпортувати сокет-сервер - -
# Імпортувати модуль sys
імпортувати sys
спробуйте:
# Встановіть номер порту
якщо sys.argv [1:]:
port = int (sys.argv [1])
ще:
порт = 5000
# Встановіть IP-адресу
server_address = ('127.0.0.1 ', порт)
# Створити об’єкт для обробки HTTP-запитів
Обробник = http.сервер.SimpleHTTPRequestHandler
# Запустіть веб-сервер назавжди для обробки запитів HTTP
з сервером сокетів.TCPServer (("", порт), обробник) як httpd:
print ("Веб-сервер працює на http: // localhost:% s"% порт)
httpd.serve_forever ()
# Зупинив сервер
крім KeyboardInterrupt:
httpd.server_close ()
print ("Сервер зупинено.")
Вихідні дані
Наступний вивід з’явиться після виконання вищезазначеного сценарію без значення аргументу командного рядка.
Наступний результат з’явиться, якщо запустити файл HTML, створений на попередньому кроці з веб-сервера.
Відкрийте діалогове вікно конфігурації з меню Виконати редактора PyCharm, щоб встановити значення аргументу командного рядка. Поле параметрів використовується для встановлення аргументу командного рядка, а тут 3000 встановлюється як значення аргументу.
Наступний результат з’явиться, якщо ви знову запустите сценарій після встановлення значення аргументу.
Приклад-3: Запустіть веб-сервер із файлом HTML
Створіть файл python з таким сценарієм для запуску веб-сервера, визначивши файл HTML для базової URL-адреси. Ім'я хосту та номер порту визначено на початку сценарію. PythonServer клас визначив у сценарії відображення файлу HTML у браузері, коли веб-сервер починає працювати.
# Імпортуйте серверний модульімпортувати http.сервер
# Встановіть ім'я хосту
HOST = "localhost"
# Встановіть номер порту
ПОРТ = 4000
# Визначте клас для відображення сторінки індексу веб-сервера
клас PythonServer (http.сервер.SimpleHTTPRequestHandler):
def do_GET (self):
якщо сам.шлях == '/':
себе.path = 'testHTML.html '
повернути http.сервер.SimpleHTTPRequestHandler.do_GET (самостійно)
# Оголосити об'єкт класу
webServer = http.сервер.HTTPServer ((HOST, PORT), PythonServer)
# Роздрукуйте URL-адресу веб-сервера
print ("Сервер запущений http: //% s:% s"% (HOST, PORT))
спробуйте:
# Запустіть веб-сервер
webServer.serve_forever ()
крім KeyboardInterrupt:
# Зупиніть веб-сервер
webServer.server_close ()
print ("Сервер зупинено.")
Вихідні дані
З'явиться наступний результат, що виконує вищевказаний сценарій.
Наступна сторінка з’явиться у браузері, якщо виконується основна URL-адреса веб-сервера веб-браузера.
Висновок
Різні способи реалізації веб-серверів за допомогою http. сервер модуль показав у цьому посібнику, щоб допомогти користувачам python створити простий веб-сервер у Python.