LINUX.ORG.RU

Python: GET и POST


0

0

как в cgi-скрипте на пайтоне отличить, используя стандартный модуль cgi, к какому типу относятся переданные данные: к GET или POST. Интересует аналоги php'ных $_GET[''] и $_POST['']. Спасибо.

anonymous

Берешь спецификацию CGI и читаешь, что CGI-скрипту передается переменная среды REQUEST_METHOD. Можно доставать через os.environ либо средствами фреймворка, которым пользуешься.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Я не пользуюсь никаким фреймворком, ибо громоздко. Тот же REQUEST_METHOD, насколко я понимаю, не разрешит примерно следующию ситуацию:
index.py?id=pages, когда одновременно будут переданы скрипты переменные pages, только каждая методами GET и POST соответственно. А мне хочется, прежде всего, раззрулить именно эту ситуацию.

Или может все-таки существует легковесный framework для cgi-python?

anonymous
()
Ответ на: комментарий от anonymous

cgi.py

> index.py?id=pages, когда одновременно будут переданы скрипты переменные pages, только каждая методами GET и POST соответственно.

Не знаю, сколько чего будет передано (не силён в CGI), но обработаны будут данные только одного метода. Какого нужно по стандарту - опять же не знаю, а что будет делать в этом случае cgi.py - можно посмотреть в его исходниках.

DKorolkov
()
Ответ на: комментарий от anonymous

>index.py?id=pages, когда одновременно будут переданы скрипты переменные pages

я не пойму в чём проблема... какое ещё одновременно? оно либо пост, либо гет. напишу по-человечески, что надо, и тебе помогут

Pi ★★★★★
()
Ответ на: комментарий от Pi

> напишу по-человечески, что надо, и тебе помогут

Я просто считал, что переменные с одинаковыми именами перекрываются. Решил не изобретать велосипед, и взять какой-нибудь фреймворк. Один нашел -- Karrigell, жаль что его на виртуальных хостинг не установишь к Апачу :/.

anonymous
()
Ответ на: комментарий от anonymous

>Или может все-таки существует легковесный framework для cgi-python? Quixote посмотри

anonymous
()
Ответ на: комментарий от anonymous

> Тот же 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'овыми, хошь --- наоборот.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от anonymous

>Или может все-таки существует легковесный framework для cgi-python? посмотри http://webpy.org, но лучше использовать не cgi, а fastcgi пример:

import web

urls = ( '/(.*)', 'hello' )

class hello: def GET(self, name): i = web.input(times=1) if not name: name = 'world' for c in xrange(int(i.times)): print 'Hello,', name+'!'

if __name__ == "__main__": web.run(urls)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.