Mod-python problem
Bob Parnes
bp at sam.localdomain
Fri Mar 1 13:25:36 EST 2002
On 1 Mar 2002 03:34:10 -0800, Alan Kennedy <alanmk at hotmail.com> wrote:
>bp at sam.localdomain (Bob Parnes) wrote in message
>
>> The only trouble is that I had forgotten about my httpd.conf file. The
>> relevant lines are:
>>
>> <Directory /var/www/modPython/test>
>> AddHandler python-program .py
>> PythonHandler mod_python.publisher
>> </Directory>
>>
>> This was the reason I used main() instead of handler(); in the url window I
>> typed in "test.py/main" and got the table but no response from FieldStorage().
>
>> Are publisher and FieldStorage() incompatible, or am I misusing them? Knowing
>> what I know now, I can probably get along without publisher, but I am
>> accustomed to placing several scripts in one directory.
>
>Bob,
>
>Sorry, I didn't realise you were using the Publisher handler,
>otherwise I wouldn't have gone and rewritten your code to work with a
>completely different paradigm. And I was wondering how you were
>getting results with something that just didn't look like it could
>work %-) D'oh! Silly me.
>
>Warning: I don't use the publisher handler, so I haven't tested any of
>the stuff below!
>
>Looking at the publisher handler documentation, section 6.1.3:
>Publisher handler: Form data
>
>http://www.modpython.org/live/mod_python-2.7.6/doc-html/node74.html
>
>which says:
>
>"In the process of matching arguments, the Publisher handler creates
>an instance of FieldStorage class. A reference to this instance is
>stored in an attribute form of the Request object.
>
>Since a FieldStorage can only be instantiated once per request, one
>must not attept to instantiate FieldStorage when using the Publisher
>handler and should use Request.form instead."
>
>So it would appear to me that you shouldn't be trying to instantiate
>the util.FieldStorage() class at all. Instead, you should be referring
>to the already extant req.form attribute. So your main function should
>change from this
>
>def main(req):
> formDict = util.FieldStorage(req)
> cl = clTest()
> return cl.cltest(req, formDict)
>
>to this
>
>def main(req):
> cl = clTest()
> return cl.cltest(req, req.form)
>
>As mentioned, I haven't tested any of this!
>
>Hope this helps,
>
>Al.
It works great. Thank you so much. I am ashamed to say that I have
the documentation, but somehow. I overlooked section 6.1.3
Bob
--
Bob Parnes
rparnes at megalink.net
More information about the Python-list
mailing list