Данные POST Python с помощью mod_wsgi

В Java абсолютно нормально иметь объект, содержащий ссылки на объекты того же класса. Вы даже можете иметь ссылку на класс.

Это полезно для построения деревьев и списков объектов.

15
задан Silver Dragon 27 December 2008 в 00:28
поделиться

2 ответа

PEP 333 говорит, что необходимо читать, окружают ['wsgi.input'].

Я просто сохранил следующий код и заставил mod_wsgi апача выполнить его.Работает.

Необходимо делать что-то не так.

from pprint import pformat

def application(environ, start_response):
    # show the environment:
    output = ['<pre>']
    output.append(pformat(environ))
    output.append('</pre>')

    #create a simple form:
    output.append('<form method="post">')
    output.append('<input type="text" name="test">')
    output.append('<input type="submit">')
    output.append('</form>')

    if environ['REQUEST_METHOD'] == 'POST':
        # show form data as received by POST:
        output.append('<h1>FORM DATA</h1>')
        output.append(pformat(environ['wsgi.input'].read()))

    # send results
    output_len = sum(len(line) for line in output)
    start_response('200 OK', [('Content-type', 'text/html'),
                              ('Content-Length', str(output_len))])
    return output
22
ответ дан 1 December 2019 в 01:31
поделиться

Имейте в виду, что с технической точки зрения при вызове читается ( ) или чтение (-1) в wsgi.input является нарушением спецификации WSGI, хотя Apache / mod_wsgi это допускает. Это связано с тем, что спецификация WSGI требует предоставления аргумента допустимой длины. В спецификации WSGI также говорится, что вы не должны читать больше данных, чем указано в CONTENT_LENGTH.

Таким образом, приведенный выше код может работать в Apache / mod_wsgi, но он не является переносимым кодом WSGI и не будет работать в некоторых других реализациях WSGI. Чтобы быть правильным, определите длину содержимого запроса и передать это значение функции read ().

13
ответ дан 1 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: