John Ruff
jcruff at gmail.com
Thu Mar 1 12:04:42 EST 2007
You are right is was not happening before, my mistake - I went back and checked. However, I've found that if I change my hello.py to the following, req.content_type doens't have to be defined. Can you explain this or point me to some reading? Does this somehow invoke the use of the mod_python.psp handler - I'm sure I'm way off base. def hello(req): s = 'Hello, there!' return psp.PSP(req, filename = 'hello.tmpl', vars = {'greet':s}) ___________________ 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 11:49 AM, Jim Gallacher wrote: > 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 >
|