python
from twisted.enterprise import adbapi
dsn = "dbname=test user=postgres password=secret host=localhost port=5432"
dbpool = adbapi.ConnectionPool("txpostgres", dsn=dsn)
python
from twisted.internet import defer
@defer.inlineCallbacks
def get_user_details(user_id):
conn = yield dbpool.connect()
try:
result = yield conn.runQuery("SELECT * FROM users WHERE id = %s", (user_id,))
defer.returnValue(result)
finally:
conn.close()
python
def on_get_user_details(result):
print(result)
def on_error(failure):
print("An error occurred: ", failure.getErrorMessage())
deferred = get_user_details(1)
deferred.addCallback(on_get_user_details)
deferred.addErrback(on_error)