I am currently using python 2.6.
For years I have used my own cgilib module which in turn uses the
stand python cgi library module.

The implementation is :
self.form = cgi.FieldStorage(keep_blank_values=1)

I'm looking for an approach that would enable both client- and
server-side validation without duplication or writing additional
scripting.

Here's one approach I am considering:
The form holds a hidden field with a "magic" name that can be read
both from the DOM on the client side and from the cgilib module on the
server side. The value for the field would be a json structure that
would have as the upper-level keys field names and values would be
in turn be json-like (dictionary) values.
Example
Code:
<input type="hidden" name="validator.descriptors"
value="{email_address:{req:1,type:email,label:Email Address},
name:{req:0}}">
etc ....

The kicker might be that I have one series of forms that have
hundreds of elements. I could end up with the value of
`validator.descriptors' being thousands of bytes long.

And don't bother to tell me that forms that large are nuts, you'd
be preaching to the long converted.

Does anyone know if the cgi module might choke on the size of a
POST'ed field OR the total length of the query string?

And that is plan A (I have plans B and C)
Thanks