Corey McGuire
coreyfro at coreyfro.com
Fri Feb 17 11:24:31 EST 2006
Ahhhh, ok. I think I miss understood how PSP worked. I was thinking one had to process everything first, and THEN inject it in to a template. I didn't realize it could be assembled on the fly. OK, thanks! > 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 >
|