embedding python in HTML
Kirk McDonald
mooquack at suad.org
Fri Feb 17 01:20:13 EST 2006
John Salerno wrote:
> bruno at modulix wrote:
>
>> You've got to understand that Python is *not* a 'ServerPage' language
>> (-> php, asp, jsp etc) in itself. Your server can now run python, fine,
>> but *how* ? CGI ? FastCGI ? mod_python ? other ? (hint: it's probably
>> just plain old CGI...)
>
>
> So does that mean I need to have something further on the server? Or is
> this something I can do on my end? How do I find out what I need?
If you really want to use Python as a server page language, mod_python
has support for Python Server Pages via its PSP handler:
Python Server Pages:
http://modpython.org/live/current/doc-html/pyapi-psp.html
PSP handler:
http://modpython.org/live/current/doc-html/hand-psp.html
This of course means your server needs to have mod_python installed and
configured. (Consult your server administrator.) However, I've always
found PSP to be somewhat fiddly, and mixing any serious code with the
HTML text is hardly pretty.
A more common (and bare-metal) approach is CGI. In CGI, a request for a
page runs a script, the output of which is the HTML page. I think this
only requires that the server has Python installed, which you have said
is the case. Python has signifigant standard library support for writing
CGI.
You should examine Python's standard cgi module:
http://python.org/doc/2.4.2/lib/module-cgi.html
That page also has some nice examples to get you started.
And maybe its Cookie module, if you ever feel like messing with cookies:
http://python.org/doc/2.4.2/lib/module-Cookie.html
Slightly less bare-metal is using mod_python directly (rather than via
its PSP module). This is probably preferable to plain CGI if mod_python
is available, as it caches scripts as long as they are not changed. This
is faster than reading them off the disk every time. By and large,
mod_python's API replaces (or at least wraps) the standard library's CGI
support if you go this route. Again, this is only available if your
server has mod_python installed, which may or may not be the case.
More information about the Python-list
mailing list