]>
git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/databases.py
4 import tornado
.database
6 from misc
import Singleton
8 class Row(tornado
.database
.Row
):
11 MYSQL_SERVER
= "mysql-master.ipfire.org"
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"]
36 class Connection(tornado
.database
.Connection
):
37 def __init__(self
, *args
, **kwargs
):
38 logging
.debug("Creating new database connection: %s" % args
[1])
40 tornado
.database
.Connection
.__init
__(self
, *args
, **kwargs
)
42 def update(self
, table
, item_id
, **items
):
43 query
= "UPDATE %s SET " % table
46 for k
, v
in items
.items():
51 keys
.append("%s='%s'" % (k
, v
))
53 query
+= ", ".join(keys
)
54 query
+= " WHERE id=%s" % item_id
56 return self
.execute(query
)
58 def insert(self
, table
, **items
):
59 query
= "INSERT INTO %s" % table
64 for k
, v
in items
.items():
70 vals
.append("'%s'" % v
)
72 query
+= "(%s)"% ", ".join(keys
)
73 query
+= " VALUES(%s)" % ", ".join(vals
)
75 return self
.execute(query
)
77 def _execute(self
, cursor
, query
, parameters
):
78 logging
.debug("Executing query: %s" % (query
% parameters
))
80 return tornado
.database
.Connection
._execute
(self
, cursor
, query
, parameters
)