[Twisted-web] HTTP redirection from data_*/render_* methods

en.karpachov at ospaz.ru en.karpachov at ospaz.ru
Sat Jul 16 02:02:39 MDT 2005

On Fri, Jul 15, 2005 at 11:45:24AM -0700, Donovan Preston wrote:
> Even if you do raise an exception, all output generated up to that  
> point will have already been sent out over the socket to the browser.  
> This means the headers will already have been written, and  
> redirecting will have no effect.

It is why I set the buffered = True in my example.

> What you want instead is to set the "buffered" attribute of your Page  
> class to true before it starts rendering. This will cause nevow to  
> delay sending any output to the browser until the entire page is done  
> rendering, allowing you to do a redirect in the middle of it.
> Personally, I don't think it's a good idea. You should decide about  
> the redirect up front, that way you avoid doing wasted work on the  

Well, one possible usage example could be

<table nevow:data="sqlquery" nevow:render="sequence">
  <tr nevow:pattern="item"><td>...</td></tr>
  <tr nevow:pattern="empty">
     <td nevow:render="redirect /notfound">None at all</td>

> server. Buffering also isn't as cool, because pages will chunk in  
> rather than streaming in.
> Donovan



More information about the Twisted-web mailing list