Как в 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
Как в Python обрабатываются переменные POST и GET?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.