Что такое обработчики в Python на простом английском - PullRequest
0 голосов
/ 30 октября 2019

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

Лучшее, что я смог найти, это wptserve:

"Обработчики - это функции, которые имеют общую подпись:

handler(request, response)

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

ссылка: https://wptserve.readthedocs.io/en/latest/handlers.html

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

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

1 Ответ

3 голосов
/ 30 октября 2019

Обычно обработчики - это функции, которые 'обрабатывают' определенные события, для которых они зарегистрированы.

Документация, на которую вы ссылаетесь, касается веб-сервера. Веб-сервер получает запросы, например, от браузеров на URL-адреса, и возвращает ответ в зависимости от того, что было запрошено. Конкретный обработчик, о котором они говорят, принимает два аргумента:

  1. request, который приходит из браузера и содержит такую ​​информацию, как URL, может быть файлы cookie, IP-адрес и т. Д.
  2. A response объект. Обработчик должен взять информацию из request, чтобы заполнить этот response объект соответствующим образом. Он может также использовать другую информацию, такую ​​как базы данных или файлы.

Например: веб-браузер запрашивает http://me.com/index.html. Обработчик вызывается, ищет файл с именем index.html в корневом каталоге. Если файл найден, он читается, добавляется к объекту response, и обработчик завершается. Инфраструктура wgetsrv сделает остальную часть работы и отправит ответ клиенту, который теперь увидит веб-сайт.

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

Обработчики часто используются для замены polling. Polling - это метод, при котором программа часто проверяет состояние чего-либо, чтобы реагировать на его изменение. Оставаясь с примером клавиатуры. Представьте, что вы управляете игроком в игре через двумерный мир с помощью клавиш со стрелками. Как программа узнает, в каком направлении вы хотите идти? Нужно проверить, какая (если есть) нажата клавиша со стрелкой. Для этого он может получить состояние клавиатуры, проверить, например, нажата ли сейчас клавиша со стрелкой вправо, а затем немного переместить плеер вправо, если это так. Но программа узнает об этом изменении только после того, как проверит клавиатуру. Поэтому, чтобы быть отзывчивым для игрока, он должен довольно часто проверять состояние клавиатуры (пару раз в секунду), что приводит к потере циклов ЦП, поскольку в большинстве случаев состояние действительно не изменилось.

Теперь поворачиваемсямодель вокруг, игра может спросить клавиатуру: Hey, when a key is pressed, call this function and tell it which keys are pressed. Функция может затем соответствующим образом обновить положение игроков - но вызывается только тогда, когда состояние клавиатуры изменилось. Опрос подобен звонку пиццерию каждые пять минут: «Мой заказ готов к вывозу?»в отличие от того, чтобы позвонить ему один раз и сказать ему: «Перезвони мне, когда мой заказ будет готов». В последнем случае вы «зарегистрировали обработчик событий для пиццы» и сэкономили вам много времени.

...