如何从 twisted.enterprise.adbapi 而不是 "Deferred" 对象获取数据
How can I get data from the twisted.enterprise.adbapi, Not the "Deferred" object
当我将 twisted.enterprise.adbapi 与 sql_server 一起使用时,我总是得到 "Deferred" 对象,但我需要列表或 tulpe 中的可用数据。
import pymssql
from twisted.internet import reactor
from twisted.enterprise import adbapi
db_settings = {
"host" : "127.0.0.1",
"port" : "1433",
"user" : "sa",
"password" : "sa",
"database" : "dataDB",
"cp_min" : "3",
"cp_max" : 10,
"cp_noisy" : "True",
"charset" : "utf8"
}
dbpool = adbapi.ConnectionPool("pymssql", **db_settings)
def getData():
return dbpool.runQuery("SELECT * FORM dataDB.Base")
reactor.callLater(4, reactor.stop)
print getData()
reactor.run()
上面的代码执行,在command中得到"Deferred at 0x4ca2948"即可。接下来我该做什么?
使用下面的代码,可以从"Deferred"
中获取数据
def getAge():
return dbpool.runQuery("SELECT * FROM Base")
def getValue(L):
print L[0][0] # type(L[0]) is Tuple
getAge().addCallback(getValue)
reactor.run()
但是,我还是不知道函数getValue中的"L"是什么意思。也许 "L" 是 getAge() 的结果,我不确定。
当我将 twisted.enterprise.adbapi 与 sql_server 一起使用时,我总是得到 "Deferred" 对象,但我需要列表或 tulpe 中的可用数据。
import pymssql
from twisted.internet import reactor
from twisted.enterprise import adbapi
db_settings = {
"host" : "127.0.0.1",
"port" : "1433",
"user" : "sa",
"password" : "sa",
"database" : "dataDB",
"cp_min" : "3",
"cp_max" : 10,
"cp_noisy" : "True",
"charset" : "utf8"
}
dbpool = adbapi.ConnectionPool("pymssql", **db_settings)
def getData():
return dbpool.runQuery("SELECT * FORM dataDB.Base")
reactor.callLater(4, reactor.stop)
print getData()
reactor.run()
上面的代码执行,在command中得到"Deferred at 0x4ca2948"即可。接下来我该做什么?
使用下面的代码,可以从"Deferred"
中获取数据def getAge():
return dbpool.runQuery("SELECT * FROM Base")
def getValue(L):
print L[0][0] # type(L[0]) is Tuple
getAge().addCallback(getValue)
reactor.run()
但是,我还是不知道函数getValue中的"L"是什么意思。也许 "L" 是 getAge() 的结果,我不确定。