|
Graham Dumpleton
grahamd at dscpl.com.au
Fri Feb 17 04:52:42 EST 2006
The PSP class always writes it output direct to the request object
and it
is not available as a string without doing some trickery. Even if using
publisher, you can do something like:
req.content_type = 'text/html'
gallery_tmpl = psp.PSP(req, filename='gallery.tmpl')
req.write("some HTML prologue")
gallery_tmpl.run(vars = { 'title': title, 'caption':
caption, 'body': body })
req.write("some HTML epilogue")
Ie., don't try and concatenate anything as strings, just write the
bits out
in sequence.
If you really need to capture the PSP output in a string have a read of:
http://www.modpython.org/pipermail/mod_python/2005-June/018231.html
Graham
On 17/02/2006, at 8:39 PM, Corey McGuire wrote:
> Hello all,
>
> I am learning python and PSP at the same time, which may be a bit of a
> mistake, but I think I am doing well.
>
> I am working on moving my PHP image gallery:
> http://www.coreyfro.com/~coreyfro/gallery.php?gallery=b-man-2003
>
> To python:
> http://127.0.0.1/~coreyfro/gallery/gallery
>
> This is really just an exercise, but it's kinda my own version of
> "Hello
> World"
>
> I am getting hung up ok this block of code:
>
> cell_tmpl = psp.PSP(req, filename='cell.tmpl', vars = {'gallery':
> gallery,
> 'i': i, 'path': path, 'file': dirList[i], 'caption': caption})
> body = body + cell_tmpl
>
> Now, the kicker is "body = body + cell_tmpl"... If I leave it like
> that, I
> get the following
> http://127.0.0.1/~coreyfro/frozen/gallery1/gallery/?gallery=b-man-2003
>
> If I try converting it to a string (like "body = body + str
> (cell_tmpl)")
> something TOTALY wacky happens
> http://127.0.0.1/~coreyfro/frozen/gallery2/gallery/?gallery=b-man-2003
>
> It's outputting the HTML I am trying to append to body and NOT
> concatinating it with body.
>
> How do I put two and two together?
>
> Here's the code in full
>
> from mod_python import psp
> import os
>
> def report(req, title, caption, body):
> req.content_type = 'text/html'
> gallery_tmpl = psp.PSP(req,
> filename='gallery.tmpl')
> gallery_tmpl.run(vars = { 'title': title, 'caption':
> caption,
> 'body': body })
>
> def index(req):
> title = "Coreyfro's Handy, Dandy, Super-
> duper,
> Gallery Engine!"
> caption = "It's free, it's fast, it's
> incomplete!"
> body = "You are probably here by
> mistake<br>\
> Please feel free to be
> confused<br>\
> I know I am"
> report(req, title, caption, body)
>
> def gallery(req, gallery='', columns=''):
> if columns:
> columns = int(columns)
> else:
> columns = 5
>
> if gallery:
> i = 0
> column = 1
> title = gallery
> caption = "Click on an image below to see it's
> full sized version"
> path = "/home/coreyfro/public_html/gallery"
> dirList = os.listdir(path+"/"+gallery+"/ds")
> body = " " * 6 + "<table>\n" + " " * 8 +
> "<tr>\n"
>
>
> while i < len(dirList):
> if column < columns:
> column = column + 1
> else:
> column = 1
> body = body + " " * 8 + "</tr>\n" + " "
> * 8 +
> "<tr>\n"
>
> cell_tmpl = psp.PSP(req,
> filename='cell.tmpl', vars
> = {'gallery': gallery, 'i': i, 'path': path, 'file':
> dirList[i], 'caption': caption})
> body = body + cell_tmpl
> i = i + 1
>
>
> body = body + " " * 8 + "</tr>\n" + " "
> * 6 +
> "</table>"
> report(req, title, caption, body)
>
> else:
> index(req)
>
> def view(req, gallery, index):
> pass
>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
|