]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - www/webapp/backend/databases.py
4 import tornado
.database
6 from misc
import Singleton
8 class Row(tornado
.database
.Row
):
11 MYSQL_SERVER
= "172.28.1.150"
13 class Databases(object):
14 __metaclass__
= Singleton
17 self
._connections
= {}
21 if not self
._connections
.has_key("webapp"):
22 self
._connections
["webapp"] = \
23 Connection(MYSQL_SERVER
, "webapp", user
="webapp")
25 return self
._connections
["webapp"]
29 if not self
._connections
.has_key("geoip"):
30 self
._connections
["geoip"] = \
31 Connection(MYSQL_SERVER
, "geoip", user
="webapp")
33 return self
._connections
["geoip"]
37 if not self
._connections
.has_key("tracker"):
38 self
._connections
["tracker"] = \
39 Connection(MYSQL_SERVER
, "tracker", user
="webapp")
41 return self
._connections
["tracker"]
44 class Connection(tornado
.database
.Connection
):
45 def __init__(self
, *args
, **kwargs
):
46 logging
.debug("Creating new database connection: %s" % args
[1])
48 tornado
.database
.Connection
.__init
__(self
, *args
, **kwargs
)
50 def update(self
, table
, item_id
, **items
):
51 query
= "UPDATE %s SET " % table
54 for k
, v
in items
.items():
59 keys
.append("%s='%s'" % (k
, v
))
61 query
+= ", ".join(keys
)
62 query
+= " WHERE id=%s" % item_id
64 return self
.execute(query
)
66 def insert(self
, table
, **items
):
67 query
= "INSERT INTO %s" % table
72 for k
, v
in items
.items():
78 vals
.append("'%s'" % v
)
80 query
+= "(%s)"% ", ".join(keys
)
81 query
+= " VALUES(%s)" % ", ".join(vals
)
83 return self
.execute(query
)
85 def _execute(self
, cursor
, query
, parameters
):
86 logging
.debug("Executing query: %s" % (query
% parameters
))
88 return tornado
.database
.Connection
._execute
(self
, cursor
, query
, parameters
)