CGI & Python (error)
Richard van de Stadt
stadt at cs.utwente.nl
Sun Mar 4 02:54:46 CET 2001
Colin Meeks wrote:
> > When accessing the script I get the error:
> > File "getdate2.py", line 12, in ?
> > day=form["day"].value
> > File "/usr/lib/python1.5/cgi.py", line 907, in __getitem__
> > raise KeyError, key
> > KeyError: day
> > The script works from the command line.
> > My problems is: the script I am trying to run is based on another one.
> > This other script works. I can't figure out the what is causing the
> > as the 2 scripts are identical in every aspect execpt for 1 variable.
> > scripts are run in a page which has all the required parameters passed to
> > Help. Please...
> If this is what I think it is (sorry it's not immediately clear), but when I
> to parse anything from CGI, if nothing is entered in one of the boxes, this
> seems to be especially for radio buttons, then the variable isn't
> The thing I always do is something like
> day=1 #or what ever you want the day variable initialised as
> I hope this is of some help.
You can also use this:
if form.has_key("day") and form["day"].value) <> "":
Note that neither of these options work in case the webform field
is a checkbox list. In such cases you shouldn't use ".value" directly,
but initially only the field name, like this:
if aForm.has_key("checkbox_list") and aForm["checkbox_list"] <> "":
To get the values of the selected items of a checkbox list (after you
tested if the fields exist like state above), do this:
checkbox_items = aForm["checkbox_list"]
if type(checkbox_items) <> type ():
checkbox_items = [checkbox_items]
After this, you will have the item(s) of the checkbox list in an array.
To get the values of the items, walk through the array, and *then* use
checkbox_item_values = 
for item in checkbox_items:
More information about the Python-list