Running CGI from within CGI

Bruno Desthuilliers bruno.42.desthuilliers at wtf.websiteburo.oops.com
Thu Feb 14 09:26:02 EST 2008


rodmc a écrit :
> I am new to using Python as a CGI platform, so please excuse me if
> this is a dumb question.
> 
> Anyway I have written a series of web forms (with Python scripts)
> which allow the user input but also retrieve data from a database. The
> data entry stage works fine however retrieving data is a little more
> tricky. However I need to find a way to call the scripts directly from
> within other CGI's. At present when I go to the next page I call the
> normal HTML page as below:
> 
>     p = open('somefile.html')
>     some = p.read()
>     p.close()
>     print some
> 
> 
> However I would like to execute a script instead so calling for
> example myscript.py - thus populating the existing forms with data.
> This does not seem to work when I modify the above method. Is there
> another way to do it? Thanks in advance.

The QuickAndDirtyWay(tm) would be to use execfile IIRC. But since you 
*don't* want to do it that way, the best thing to do would be to factor 
out common code into functions in a distinct module (or in as many 
modules as needed), then rewrite your cgi scripts so they import the 
relevant modules and call the appropriate functions.

And while we're at it, I'd greatly recommand giving a look at the 
various templating packages around (may I recommand Mako ?) and the 
FormEncode package for HTTP forms conversion/validation ?

HTH



More information about the Python-list mailing list