Данные формы недоступны в скрипте Python - PullRequest
0 голосов
/ 02 мая 2018

Рассмотрим следующий скрипт test.py на сервере Apache:

#!/usr/bin/env python

import cgi

cgi.test()

Если я позвоню http://domain.local/test.py?foo=bar, на выходе появится сообщение (среди прочего):

QUERY_STRING
REQUEST_METHOD
    GET

Command Line Arguments
[]

Form Contents:
No form fields.

Если я отправляю данные с помощью запроса POST, QUERY_STRING и REQUEST_METHOD вообще не отображаются, не говоря уже о том, что раздел содержимого формы все еще пуст.

Почему это происходит и как я могу это решить?

1 Ответ

0 голосов
/ 05 мая 2018

Я решил проблему с обходным путем:

import urlparse
import sys

print "Content-Type: text/plain;charset=utf-8"
print

data=dict(urlparse.parse_qsl(sys.stdin.read()))

for field in data:
   print field,data[field]

В моем конкретном случае скрипт будет принимать только данные POST (я бы использовал $ _POST в PHP, исключая $ _GET). Его можно легко изменить, чтобы иметь возможность анализировать данные GET, будь то вместо или в дополнение к POST.

Однако мне все равно было бы интересно узнать, почему первоначальный подход не сработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...