Abdul-Wahid Paterson wrote:
Hi
I thought the twisted enterprise was meant to be more suited... http://twistedmatrix.com/projects/core/documentation/howto/enterprise.html (Sorry Martin for hijacking your question but I think we want to know the same thing). Anyway, the method on this page sounds good but I wasn't actually sure how I fit this in with the renderers. Especially, there are some SQL queries I want to do before rendering anything on the page and perhaps before even sending HTTP header information. If I am calling the deffered from renderHTTP how do I use the result within renderHTTP. An example would be nice :)

That's a pretty elementary question. Perhaps someone could add a simple example like this to the twisted.web docs?


from twisted.web import resource, server
from twisted.enterprise import adbapi

mypool = adbapi.ConnectionPool(...)

class page(resource.Resource)
  def render_GET(self, request):
    d = mypool.runInteraction(self.query, request_args)
    d.addCallback(self.ok, request)
    d.addErrback(self.err, request)

    return server.NOT_DONE_YET

  def query(self, cursor, request_args):
    """I run in a thread. Do database stuff here"""
    cursor.execute(...)
    return cursor.fetchall()

  def ok(self, results, request):
    request.write("""<html>...""")
    for row in results:
        request.write(...row...)
    request.finish()

  def ok(self, failure, request):
    request.write("""<html><body><h2>Error</h2>""")
    request.write(failure.getErrorMessage())
    request.write("""</body></html>""")
    request.finish()

_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

Reply via email to