]>
Commit | Line | Data |
---|---|---|
fc01a3eb MR |
1 | import logging |
2 | logging.basicConfig(level=logging.INFO) | |
3 | logger = logging.getLogger(__name__) | |
4 | ||
e5424f29 MR |
5 | class Base(object): |
6 | ||
fc01a3eb | 7 | def query(self, sql, placeholders): |
e5424f29 MR |
8 | res = None |
9 | cur = self.conn.cursor() | |
10 | try: | |
fc01a3eb | 11 | cur.execute(sql, placeholders) |
e5424f29 | 12 | res = cur.fetchall() |
fc01a3eb MR |
13 | except Exception as e: |
14 | logger.error("{0}".format(e)) | |
e5424f29 MR |
15 | pass |
16 | finally: | |
17 | cur.close() | |
18 | ||
19 | return res | |
20 | ||
21 | def update(self, sql, placeholders): | |
22 | rows = None | |
23 | cur = self.conn.cursor() | |
24 | try: | |
25 | cur.execute(sql, placeholders) | |
26 | self.conn.commit() | |
27 | rows = cur.rowcount | |
28 | except Exception as e: | |
29 | self.conn.rollback() | |
30 | raise Exception(e) | |
31 | finally: | |
32 | cur.close() | |
33 | ||
34 | return rows | |
35 | ||
36 | def insert(self, sql, placeholders): | |
37 | lastid = None | |
38 | cur = self.conn.cursor() | |
39 | try: | |
40 | cur.execute(sql, placeholders) | |
41 | if self.__class__.__name__ == 'Postgres': | |
42 | cur.execute('select lastval()') | |
43 | lastid = cur.fetchone()[0] | |
44 | else: | |
45 | lastid = cur.lastrowid | |
46 | self.conn.commit() | |
47 | except Exception as e: | |
48 | self.conn.rollback() | |
49 | raise Exception(e) | |
50 | finally: | |
51 | cur.close() | |
52 | ||
53 | return lastid | |
54 | ||
55 | def ddl(self, sql): | |
56 | cur = self.conn.cursor() | |
57 | try: | |
58 | if self.__class__.__name__ == 'Mysql': | |
59 | for r in cur.execute(sql, multi=True): | |
60 | pass | |
61 | else: | |
62 | cur.execute(sql) | |
63 | self.conn.commit() | |
64 | except Exception as e: | |
65 | self.conn.rollback() | |
66 | raise Exception(e) | |
67 | finally: | |
68 | cur.close() | |
69 | ||
70 | def __del__(self): | |
71 | #print("%s: deleted" % self.__class__.__name__) | |
72 | try: | |
73 | self.conn.close() | |
74 | self.conn = None | |
75 | except AttributeError: | |
76 | pass | |
77 | except: | |
78 | raise |