[Twisted-Python] dbapi and pb question

Fredrik info at cleosan.com
Sat Aug 3 14:39:11 EDT 2002


Thank you it works
and now i will try to make many sqls in one transaction, 
if I have any  problem I will return ...

Regards 
Fredrik

On Fri, Aug 02, 2002 at 11:31:23PM -0500, Sean Riley wrote:
> looks to me like the method "perspective_echo" should return the defered
> that the method "getAge" gets from  the dbapi.
> 
> Try changing:
> 
>    def perspective_echo(self, text):
>         print 'echoing',text
>         self.db.getAge(text).addCallback(self.gotAge,text)
> 
> to
> 
>    def perspective_echo(self, text):
>         print 'echoing',text
>         return self.db.getAge(text).addCallback(self.gotAge,text)
> 
> 
> -----Original Message-----
> From: twisted-python-admin at twistedmatrix.com
> [mailto:twisted-python-admin at twistedmatrix.com]On Behalf Of Fredrik
> Sent: Thursday, August 01, 2002 5:22 AM
> To: twisted-python at twistedmatrix.com
> Subject: [Twisted-Python] dbapi and pb question
> 
> 
> I am a newbie to this  and i try to connect a database to pb,
> when trying this code i dont get any response from the server (running
> pbgtk.py)but the server outputs the print statement, how do I send bacdk a
> callback to the client ??
> 
> 
> 
> from twisted.enterprise import adbapi
> from twisted.spread import pb
> from twisted.internet import app
> 
> 
> class AgeDatabase(adbapi.Augmentation):
>     """A simple example that can retrieve an age from the database"""
> 
>     def getAAge(self):
>         sql = """SELECT age FROM person """
>         return self.runQuery(sql)
> 
>     def getAge(self, name):
>         sql = """SELECT age FROM person where name = %s """
>         return self.runQuery(sql, name)
> 
> class DefinedError(pb.Error):
>     pass
> 
> class SimplePerspective(pb.Perspective):
>     db = AgeDatabase(adbapi.ConnectionPool("MySQLdb", db='test'))
> 
>     def perspective_echo(self, text):
>         print 'echoing',text
>         self.db.getAge(text).addCallback(self.gotAge,text)
> 
>     def perspective_error(self):
>         raise DefinedError("exception!")
> 
>     #########################################
>     # the next function wont return to client
> 
>     def gotAge(self,resultlist, name):
>         age = resultlist[0][0]          # First field of first record
>         print "%s is %d years old" % (name, age)
>         return str(age)
> 
> 
> class SimpleService(pb.Service):
>     def getPerspectiveNamed(self, name):
>         p = SimplePerspective(name)
>         p.setService(self)
>         return p
> 
> if __name__ == '__main__':
>     import pbecho
>     appl = app.Application("pbecho")
> 
> pbecho.SimpleService("pbecho",appl).getPerspectiveNamed("guest").makeIdentit
> y("guest")
>     appl.listenTCP(pb.portno, pb.BrokerFactory(pb.AuthRoot(appl)))
>     appl.run()
>     #appl.save("start")
> 
> 
> 
> Fredrik Bjornsson
> info at cleosan.com
> 
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 





More information about the Twisted-Python mailing list