Running CGI from within CGI

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • rodmc

    Running CGI from within CGI

    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.

    Kind regards,

    rod
  • Bruno Desthuilliers

    #2
    Re: Running CGI from within CGI

    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 QuickAndDirtyWa y(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

    Comment

    • rodmc

      #3
      Re: Running CGI from within CGI

      Thanks for the details, is execfile full of security issues or
      something?

      You are right about exploring templates, I may explore that later.
      However I need to integrate the forms in with another system, which
      will not be using templates. I suspect I may have taken the long way
      round but I suppose it also means I learn a little more Python :-)

      Cheers,

      rod

      On Feb 14, 3:26 pm, Bruno Desthuilliers <bruno.
      42.desthuilli.. .@wtf.websitebu ro.oops.comwrot e:
      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 QuickAndDirtyWa y(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


      Comment

      Working...