[mod_python] Simple Issue, Baffling

Jim Gallacher jpg at jgassociates.ca
Thu Jan 26 16:14:58 EST 2006

David Worley wrote:
> Hello, all. I'm new to mod_python and somewhat new to server side
> programming.
> I've read the documentation, and I can't seem to find out something
> relatively simple.
> I'm writing a CSS preprocessor. It's meant to grab a request for a .css
> file, process another file and return the result to the browser. The
> issue I have is that I can't get the handler to return content the
> browser actually uses.
> To clarify, I'm running Apache 2.0, Python 2.4 on Windows XP.
> So with the following httpd.conf entry:
> <Directory /some/file/system/directory>
> 	AddHandler python-program .sss
> 	PythonHandler switch
> 	PythonDebug On
> </Directory>
> And the following Python code, in switch.py:
> from mod_python import apache
> def handler(req):
> 	req.content_type = "text/css"
> 	req.write("""\
> body { background-color: red; }""")
> 	return apache.OK
> This works. It works great. When I request
> http://localhost/some/file/system/directory/style.css, I get the body
> declaration above. BUT the browser doesn't use it!

Maybe I don't understand the question but why would it? The browser only 
uses the stylesheet to render the page when it's specified in an html 
<style> tag.

> I have the same problem when declaring req.content_type = "text/html":
> the code is returned properly, but it isn't rendered as HTML. It's just
> text, as far as the browser is concerned.

You got me there, unless you are saying you are getting the python code 
as opposed to the html you send with req.write. Are you writing valid 
html? Any chance there is a typo in req.content_type = 'text/html'? Are 
you using a different handler for generating the html?

It would help if you can clarify your problem a little.


More information about the Mod_python mailing list