Парсинг POST запросов на python

Рейтинг: 3Ответов: 2Опубликовано: 26.01.2011

Конкретный пример. Есть простенькая html форма:

<form action="http://localhost:8000/submitPage" method="POST" enctype="multipart/form-data">
    Login: <input name="Login" size="10">
    <textarea name="Source" rows="20" style="width:560px"></textarea>
    <input type="SUBMIT" value="Отправить">
</form>

И нужно как-нибудь распарсить передаваемые значения. На многочисленных форумах люди используют cgi для таких целей:

class MyHandler(BaseHTTPRequestHandler):
    def do_POST(s):
        ctype, pdict = cgi.parse_header(s.headers.get('content-type'))
        if ctype == 'multipart/form-data':
            s.body = cgi.parse_multipart(s.rfile, pdict) #problem here
        ...

Но зайдя в parse_multipart всё зависает :(

Ответы

▲ 2Принят

Внешне выглядит так, будто всё верно. Наверняка какой-то баг. На питон целая куча багов висит по поводу parse_multipart

▲ 2

Я бы посоветовал не связываться с голым CGI лишний раз. Посмотрите в сторону mod_python или пришедшего ему на смену mod_wsgi.

А чтобы было ещё проще, используйте какой-нибудь фреймворк высокого уровня, типа Django. Лично мне, когда нужно что-нибудь простенькое обработать, я именно к Джанго обращаюсь. Всё крайне просто и не приходится думать о какой-то ерунде — пишешь только суть.

Даже если ощущаете, что сейчас это Вам, вроде как, не надо — уверяю, в будущем пригодится.