Спецификация WSGI
WSGI - это не фреймворк/сервер/приложение или что-либо еще. Это спецификация описывающая взаимодействие сервера и приложения.
WSGI Tutorialhttp://wsgi.tutorial.codepoint.net

Gunicornhttps://gunicorn.org/

Взаимодействие сервер-приложение
Давайте разберемся с терминологией
Сервер - Программа которая может держать соединения с клиентами по протоколу http/https
.
Приложение - Ваша программа(например на Django
) которая содержит функцию, которую надо вызывать если вы хотите чтобы программа обработала запрос.
Картина выглядит примерно так:
Самое простое wsgi-приложение
def application (
environ,
start_response
):
response_body = 'Request method: %s' % environ['REQUEST_METHOD']
status = '200 OK'
response_headers = [
('Content-Type', 'text/plain'),
('Content-Length', str(len(response_body)))
]
start_response(status, response_headers)
return [response_body]
Как видно, это очень простая функция, которая получает:
environ
- словарь содержащий CGI переменные.start_response
- Callback-функция, которую надо вызвать прежде чем отдать тело отвера. Функция получает первым параметром статут ответа, а вторым пары("Http-заголовок", "Значение")
.
Должна функция вернуть тело ответа.