Спецификация WSGI

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

Взаимодействие сервер-приложение

Давайте разберемся с терминологией

Сервер - Программа которая может держать соединения с клиентами по протоколу 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]

Как видно, это очень простая функция, которая получает:

Должна функция вернуть тело ответа.