python and cgi

Greg Jorgensen gregj at pobox.com
Sat Dec 23 19:22:23 EST 2000


<etoffi at bigfoot.com> wrote in message news:9235p5$ngo$1 at nnrp1.deja.com...
> hello, fellow pythoners!
>
> i am writing an application that will communicate between two systems
> using http.  note that i am not an expert in http (or python ;)
>
> i need a way to "upload" using the HTTP POST method (ie: simulating a
> browser).

One easy way to do this:

1. Get your server-side page working with the form input and submit, so you
can use it from your browser.
For example, let's say the URL of the server-side page is
http://domain.com/formpage.html and it has three input fields: firstname,
lastname, and email. To make testing easy you should make the resulting page
(what happens after the form data is submitted) be a single line of text (no
HTML) that has a word or code (like 'ok' or 'fail').

2. Put your form fields into a Python dictionary, then use the urllib module
to encode the form data, open the URL, send the form data, and get the
result:

    import urllib

    url = 'http://domain.com/formpage.html'
    formdata = {'firstname': 'greg', 'lastname': 'jorgensen', 'email':
'gregj at pobox.com'}

    try:
        f = urllib.urlopen(url, urllib.urlencode(formdata))
        s = f.read()
        s = s.strip().lower()
    except:
        s = ''

    if s == 'ok':
        # success
    else:
        # fail

This is a very simplistic example but it will get you going. XML-RPC and
SOAP are more robust and scalable solutions.

--
Greg Jorgensen
Deschooling Society
Portland, Oregon, USA
gregj at pobox.com





More information about the Python-list mailing list