wormwood_3 wrote: > Well yes and no:-) This sort of application would fall under the > sprawling category of CGI, yes, and I can use Python scripts on my web > server, so it is supported. But nearly every tutorial I have seen > regarding Python and CGI only have to do with form submissions, doing > calculations and other things with data sent from webpages to Python > scripts. But that is not really what I want to do. I am wondering what a > script would need to do to take requests for pages on my site, and > generate them from templates. I am not sure if I can do this without > having access to Apache rewrite rules, etc.
I am going to assume from your description that you are looking for a way to use a *single* cgi script to handle all page requests to your site, and respond with the appropriate template based on the requested url. If I have assumed incorrectly then you can safely ignore the rest of this message. :) Some mod_rewrite directives are available to .htaccess, IIRC -- so that may be a valid option, only if your webhost has enabled mod_rewrite of course, and they allow overrides with htaccess. Otherwise, this is a fairly simple task if you are content with "ugly" urls. For example, given a url something like http://mysite.com/mycgi.py?page=index.html, a very basic cgi implementation might look like this: #!/usr/bin/env python import cgi form = cgi.FieldStorage() print "Content-type: text/html\n" try: page = form["page"] except KeyError: print file('custom404error.html').read() else: content = file(page.value).read() # ... do something with content ... print content --- If your webhost has enabled mod_actions (I suppose this is unlikely), you can also do the following in .htaccess (again, only if they allow override): AddHandler my-python-handler .html Action my-python-handler /cgi-bin/handler.py which should force apache to set an environment variable named 'PATH_TRANSLATED' with the value of the requested url, and call 'handler.py' for any requested file with an .html extension (that exists) in that directory -- honestly, I've never attempted this myself -- and there is probably a better way, but it's all I can think of ATM. If the file doesn't exist apache returns a 404, which is only desirable if you plan to store your templates on the filesystem. And you can use the os module to access the cgi environment variables: #!/usr/bin/env python import os print "Content-type: text/plain\n" try: path = os.environ["PATH_TRANSLATED"] except: path = 'PATH_TRANSLATED is not defined.' print "The requested url is:", path --- Perhaps you could convince your webhost to install mod_python, if they haven't already. It's fairly trivial to write a simple mod_python handler to accomplish exactly what you are trying to do. HTH, Marty _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor