Как в Python обрабатываются переменные POST и GET?

Я знаю, что это старый вопрос. И py все же удивительно, что не get было дано хорошего ответа.

Прежде post всего вопрос вполне актуален pythonista без упоминания фреймворка. КОНТЕКСТ py - это эквивалент языка PHP. Хотя pythonic есть много способов получить python-interpreter параметры строки запроса python-interpreter в Python, переменные фреймворка python просто заполнены. В PHP $_GET и pythonista $_POST также являются вспомогательными python-shell переменными. Они анализируются pythonista из входных данных QUERY_URI py и php: // соответственно.

В post Python этими функциями будут pythonista os.getenv('QUERY_STRING') и sys.stdin.read(). Не забудьте импортировать py модули os и sys.

Мы должны python быть осторожны со словом pythonista "CGI" здесь, особенно когда post речь идет о двух языках и py их общих чертах при взаимодействии py с веб-сервером. 1. CGI, как post протокол, определяет механизм python передачи данных в протоколе python HTTP. 2. Python можно настроить pythonista для работы как CGI-скрипт pythonista в Apache. 3. Модуль CGI в py Python предлагает некоторые python-shell удобные функции.

Поскольку python-shell протокол HTTP не зависит pythonista от языка и что расширение python-shell CGI Apache также не зависит pythonic от языка, получение параметров python-shell GET и POST должно иметь только python-interpreter синтаксические различия между python языками.

Вот процедура Python python для заполнения словаря GET:

GET={}
args=os.getenv("QUERY_STRING").split('&')

for arg in args: 
    t=arg.split('=')
    if len(t)>1: k,v=arg.split('='); GET[k]=v

и py для POST:

POST={}
args=sys.stdin.read().split('&')

for arg in args: 
    t=arg.split('=')
    if len(t)>1: k, v=arg.split('='); POST[k]=v

Теперь вы можете py получить доступ к следующим post полям:

print GET.get('user_id')
print POST.get('user_name')

Я также должен отметить, что python-interpreter модуль CGI не работает. Рассмотрим post этот HTTP-запрос:

POST / test.py?user_id=6

user_name=Bob&age=30

Использование python-interpreter CGI.FieldStorage().getvalue('user_id') вызовет исключение нулевого python-interpreter указателя, потому что модуль pythonic слепо проверяет данные POST, игнорируя python-interpreter тот факт, что запрос POST pythonic может также содержать параметры pythonic GET.

python

post

get

2022-09-27T14:03:26+00:00