[Twisted-web] Deferred 101

mayvimmer at fibertel.com.ar mayvimmer at fibertel.com.ar
Wed Jul 6 00:03:29 EDT 2011


----- Mensaje original -----
De: Phil Mayers <p.mayers at imperial.ac.uk>
Fecha: Martes, Julio 5, 2011 4:01 am
Asunto: Re: [Twisted-web] Deferred 101

> On 07/05/2011 05:14 AM, mayvimmer at fibertel.com.ar wrote:
> > Hi guys,
> >   I'm totally new to Twisted although everything I try so far has been a lot of
> > fun. I have a really simple situation it seems I cannot wrap my head around.
> > Although the tutorial have been really helpful I cannof find how to fix this
> > last part.
> >
> 
> The problem is almost certainly that Mako is not deferred-aware. If 
> it 
> were, it would stop the render when encountering a deferred and re-
> start 
> when the deferred callback runs. But if it were, the return value 
> of 
> it's render method would almost certainly itself be a deferred, 
> which of 
> course it's not.
> 
> Try something this:
> 
> def render_POST(self, request):
>   d = myDeferredMethod()
>   def render(value):
>     request.write(template.render(...., value=value))
>     request.finish()
>   d.addCallback(render)
>   return NOT_DONE_YET
> 
> i.e. add a callback to the deferred which does the rendering for 
> you 
> only when the result is available.
> 
> FWIF the recently added twisted.web.template handles deferred 
> natively.
>

Thanks a lot Phil. That fixed my problem.

Eduardo Miguez





More information about the Twisted-web mailing list