Как правильно настроить и запустить uWSGI?

Я только начал с wsgi и пытаюсь запустить простой сервер uwsgi. Я создал среду virtualenv и активировал ее. Внутри lib у меня есть файл hello.py с содержимым:

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

И я бегу:

uwsgi --http :8000 --wsgi-file lib/hello.py --add-header "X-test: hi"

запустить сервер.

Моя проблема заключается в том, что сервер не выделяет тело. Когда я захожу на localhost:8000, я вижу заголовок X-test, поэтому я определенно нажимаю на uwsgi. Кроме того, если я заменю "200 OK" на что-то другое, я также вижу это в curl.

Я вполне уверен, что правильно выполнил руководство (оно показалось довольно простым), кто-нибудь может заметить, что я делаю неправильно? Может ли быть так, что я использую python3? Я установил uwsgi через pip внутри моего virtualenv, если это вообще имеет значение.

1 ответ

Решение

WSGI для python3 отличается, ваш вывод должен быть байтами, а не строкой

Другие вопросы по тегам