Поиск диаграммы для объяснения WSGI
Чтобы помочь моему пониманию WSGI, я ищу диаграмму, объясняющую поток приложения, от веб-сервера (например, apache), через несколько промежуточных элементов до "кода" (как, например, бит print "hello world"
).
Я читал различные статьи о WSGI с сайта wsgi.org, но он по-прежнему не "нажимал" для меня, и что касается диаграмм, Google не приносит ничего полезного, кроме this для django, который, хотя и интересен, ожидает, что пользователь поймет, как связывание промежуточного программного обеспечения и т.д.
Поскольку "изображение стоит тысячи слов", существуют ли какие-либо диаграммы, которые становятся немного более низкими/более упрощенными, чем это?
Ответы
Ответ 1
Я искал диаграмму, объясняющую поток WSGI в течение некоторого времени. Вот почему я был очень рад, когда нашел эту тему. У меня было большое ожидание того, что я увижу, зная, насколько хорош Иан Бикинг при написании Python. Тем не менее, я буквально ничего не получил, посмотрев на иллюминированные трубки Яна (диаграмма?). Вот почему я решил сам нарисовать. Надеюсь, это поможет кому-то понять, как работает поток WSGI. Пока у вас есть предложения, как сделать это лучше, я открыт для его изменения. Он был создан с помощью LUCIDCHART webapp. Исходную диаграмму вы можете найти здесь, а высокое качество PNG здесь.
![WSGI Flow]()
Ответ 2
Мне нравится диаграмма от Ian Bicking WSGI - серия трубок.
Ответ 3
Я не знаю, могу ли я предоставить ответ, который вы ищете, но связанная с ним диаграмма показывает больше, чем просто wsgi. Уровень wsgi заканчивается во второй строке диаграммы. После этого это приложение специфично.
WSGI - это скорее определение интерфейса или контракт, который сводится к тому, что вы предоставляете функцию, которая принимает словарь (environment), который представляет содержимое текущего запроса. и функцию для вызова, когда вы готовы начать ответ (start_response).
Для метода start_response, который вы вызываете, требуется код состояния HTTP ('200 OK') и список заголовков HTTP ([('content-type', 'text/html')]).
def say_hello(envron={},start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ["Hello from WSGI"]
Связывание вашего веб-сервера с вашим приложением wsgi специфично для вашего веб-сервера. Я думаю, и информация о том, как веб-сервер приходит в словарь условий и обратный вызов для вашего кода для вызова, - это волшебство веб-сервера, которое вам, вероятно, не нужно быть обеспокоенным. И пока вы подчиняетесь протоколу, веб-серверу не нужно заботиться о том, как вы пришли к вашему списку результатов, который представляет собой ваш ответ из вашего приложения.
Документация Paste помогла мне LOT. Вы можете найти это полезным. BTW, Paste - это куча полезных вещей, которые помогут вам использовать WSGI. И документы очень хороши для понимания использования WSGI и расширения Paste.
Я знаю, что вы попросили диаграмму извините.: (