[python] mod_python Templating System
    mtip 
    mtip na atlas.cz
       
    Čtvrtek Leden  4 09:39:08 CET 2007
    
    
  
s> mtip napsal(a):
>> Zdravim,
>> mam mod_python na Apache s nastavenim jako Templating System
>> (PythonHandler mod_python.publisher)
>> v dokumentaci je popsano pouze jak odeslat na vystup zkompilovanou
>> sablonu :
>> tmpl = psp.PSP(req, filename='hello.tmpl')
>> tmpl.run(vars = { 'greet': s })
>> Ale ja bych potreboval tuhle sablonu jen zkompilovat a ulozit do
>> promenne k dalsimu pouziti jako podokno stranky. Nevite nekdo jak na
>> to ? Diky.
>> 
s> Zdravim,
s> ja pouzivam tento zpusob:
s> -------------------------
s> title = "muj web"
s> menu_psp = psp.PSP(req, "menu_tmpl.html", vars = {})
s> content_psp = psp.PSP(req, "content_tmpl.html",
s> 			vars = {'obsah': "nejaky obsah"})
s> web = psp.PSP(req, "web_tmpl.html", vars={'menu_tmpl':menu_psp,
s> 			'content':content_psp,
s>                         'title':title})
s> p.s. take teprve pronikam do taju tohoto modu ;)
---------------------------------------------------------------------------
Diky za odpoved, ale tohle se mi nejak nedari rozchodit, s tim, ze mi to chybuje,
ze predavana promenna do sablony by mela byt uz typu string.
Nicmene uz sem to vyresil docasnym prekrytim metody write v req - takto:
def getHtml(self):
        ''' vraci vyrenderovany kod html'''
        class DataReq:
            def __init__(self):
                self.data=''
            def write(self,data,*arg):
                self.data+=data
        req=DataReq()
        oldWrite=self.app.req.write
        self.app.req.write=req.write
        self.app.req.content_type = "text/html"
        try:
            tmpl = psp.PSP(self.app.req,filename="%s.htm" % self.name)
            tmpl.run(self._vars)
        finally:
            self.app.req.write=oldWrite
        return str(req.data)
-- 
Mirek N.
    
    
Další informace o konferenci Python