Jim Gallacher
jpg at jgassociates.ca
Thu Mar 1 11:49:26 EST 2007
John Ruff wrote: > Thanks Olaf. Is this a new requirement? It's not mentioned in the PSP > 3.3 docs example for templating. Also, I didn't see this issue when > previously using 3.2.10. Were you using *exactly* the same code? If so I'm surprised it worked before. Some of what you are seeing is the result of the way you are using mod_python.publisher, rather than a psp issue. First, don't return apache.OK from your hello() function. Publisher looks after the apache return code for you internally. Publisher will convert whatever is returned by the function to a string and write it to the client. If req.content_type is not set publisher will examine whatever is returned and make a best effort to guess the correct content_type, and in this case guesses wrong. You real content is being written directly by the run() method of your PSP instance. In this case you must explicitly set the content type. Note that if you were using the mod_python.psp handler directly it would have guessed the correct content type and all would have well. As for the extra html being written... I have no idea what is going on as I can't reproduce that result using the code snippet you've given. For me it just returns: <html> <body> <h1>Hello, there!</h1> </body> </html> 0 Jim > Thanks. > ___________________ > John Ruff > jcruff at gmail.com > GPG Key: 0x1F691195 > FGPR: 6B50 37C9 10F9 6C4A D381 54B8 319D 7DD9 1F69 1195 > > "No one can see past a choice they don't understand." --The Oracle > > > On Mar 1, 2007, at 10:13 AM, Olaf Stein wrote: > >> Add >> req.content_type = 'text/html' >> Before your tmpl.run(vars = {'greet':s}) >> >> Olaf >> >> On 3/1/07 9:40 AM, "John Ruff" <jcruff at gmail.com> wrote: >> >>> I'm trying to understand what I'm doing wrong. I'm using mod_python >>> 3.3.1 with apache 2.2.4. The situation is that while trying to use >>> PSP as a templating engine, none of the examples work. Yet normal >>> 'SetHandler mod_python' with inline html works no problem. >>> >>> I have the following: >>> >>> <Directory "/home/<user-dir>/Sites/python"> >>> SetHandler mod_python >>> PythonHandler mod_python.publisher >>> PythonOption mod_python.psp.cache_database_filename "/tmp/ >>> pspcache.dbm" >>> PythonDebug On >>> </Directory> >>> >>> ====hello.py==== >>> from mod_python import apache, psp >>> >>> def hello(req): >>> s = 'Hello, there!' >>> tmpl = psp.PSP(req, filename = 'hello.tmpl') >>> tmpl.run(vars = {'greet':s}) >>> return apache.OK >>> >>> ====hello.tmpl==== >>> <html> >>> <body> >>> <h1><%=greet%></h1> >>> </body> >>> </html> >>> >>> >>> Still, I'm presented with a webpage that's raw html of what would >>> have been generated. When using firefox's Web Developer toolbar to >>> see the generated source I can see that my html has been surrounded >>> by an '<html><head></head><body><pre>...</pre></body></html>' block. >>> So it looks like this: >>> >>> [snip] >>> >>> <html><head></head><body><pre><!DOCTYPE html PUBLIC "-//W3C//DTD >>> XHTML 1.0 Strict//EN" >>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> >>> >>> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >>> lang="en"> >>> <head> >>> <meta http-equiv="Content-Type" content="text/html; >>> charset=utf-8"/> >>> >>> <title>hello</title> >>> >>> >>> </head> >>> >>> <body> >>> <h1>Hello, there!</h1> >>> </body> >>> </html> >>> </pre></body></html> >>> >>> [/snip] >>> >>> Any ideas why this is happening? >>> ___________________ >>> John Ruff >>> jcruff at gmail.com >>> GPG Key: 0x1F691195 >>> FGPR: 6B50 37C9 10F9 6C4A D381 54B8 319D 7DD9 1F69 1195 >>> >>> "No one can see past a choice they don't understand." --The Oracle >>> >>> >>> _______________________________________________ >>> Mod_python mailing list >>> Mod_python at modpython.org >>> http://mailman.modpython.org/mailman/listinfo/mod_python >> >> >> >> >> >> ------------------------- >> Olaf Stein >> DBA >> Center for Quantitative and Computational Biology >> Columbus Children's Research Institute >> 700 Children's Drive >> phone: 1-614-355-5685 >> cell: 1-614-843-0432 >> email: steino at ccri.net >> > > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python >
|