CGI is the only alternative I have on my commercial host. I find it straightforward. Here's some snips:
print "Content-type: text/html\n\n"
import os
import cgitb; cgitb.enable() #Debug aid to be removed later
import cgi
import re
import types
...
...
SERVER = os.environ
script = SERVER ['SCRIPT_NAME']
query = SERVER ['QUERY_STRING']
browser = SERVER ['HTTP_USER_AGENT']
ip = SERVER ['REMOTE_ADDR']
...
...
form = cgi.FieldStorage ()
page = form.getfirst ("page", "0-0")
... That last statement gets the page field from the form or from a GET like "myurl?page=0-0&blah=blah". It gets the first, if there are more than one, and returns the second argument as a default if it isn't present.