как в cgi-скрипте на пайтоне отличить, используя стандартный модуль cgi, к какому типу относятся переданные данные: к GET или POST. Интересует аналоги php'ных $_GET[''] и $_POST['']. Спасибо.
Берешь спецификацию CGI и читаешь, что CGI-скрипту передается переменная среды REQUEST_METHOD. Можно доставать через os.environ либо средствами фреймворка, которым пользуешься.
Я не пользуюсь никаким фреймворком, ибо громоздко. Тот же REQUEST_METHOD, насколко я понимаю, не разрешит примерно следующию ситуацию:
index.py?id=pages, когда одновременно будут переданы скрипты переменные pages, только каждая методами GET и POST соответственно. А мне хочется, прежде всего, раззрулить именно эту ситуацию.
Или может все-таки существует легковесный framework для cgi-python?
> index.py?id=pages, когда одновременно будут переданы скрипты переменные pages, только каждая методами GET и POST соответственно.
Не знаю, сколько чего будет передано (не силён в CGI), но обработаны будут данные только одного метода. Какого нужно по стандарту - опять же не знаю, а что будет делать в этом случае cgi.py - можно посмотреть в его исходниках.
Я просто считал, что переменные с одинаковыми именами перекрываются. Решил не изобретать велосипед, и взять какой-нибудь фреймворк. Один нашел -- Karrigell, жаль что его на виртуальных хостинг не установишь к Апачу :/.
> Тот же REQUEST_METHOD, насколко я понимаю, не разрешит примерно следующию ситуацию
REQUEST_METHOD просто хранит имя метода, который запросил клиент: GET/POST/HEAD/...
> index.py?id=pages, когда одновременно будут переданы скрипты переменные pages, только каждая методами GET и POST соответственно
На самом деле, два значения могут возникнуть только при POST --- при GET у тебя только URI.
А при POST, без проблем. POST'овые данные у тебя будут на stdin, их размер --- в CONTENT_LENGTH, тип в CONTENT_TYPE. При этом, в QUERY_STRING у тебя будет часть URI после '?'. Разруливай, как тебе надо. Хошь --- ошибку выдавай, хошь --- перекрывай POST'овые значения GET'овыми, хошь --- наоборот.