py.lib
2020-08-02
Parent:cab7fedf8432
py.lib/db/pg/py.py
* db/sqlite.py: Импортируем полезные классы для реакции на ошибки
| awgur@13 | 1 import postgresql.driver as DBM |
| awgur@13 | 2 import postgresql.exceptions as DBErr |
| awgur@13 | 3 |
| awgur@13 | 4 def GetDB(*, name, user, passwd, host='localhost', port=5432): |
| awgur@13 | 5 """ |
| awgur@13 | 6 На случай когда лениво каждый раз вызывать базу со всеми регалиями, |
| awgur@13 | 7 регалии сохраняем в специального вызывателя :))) |
| awgur@13 | 8 """ |
| awgur@13 | 9 def func (): |
| awgur@13 | 10 return DB(name, user, passwd, host=host, port=port) |
| awgur@13 | 11 return func |
| awgur@13 | 12 |
| awgur@13 | 13 class DB: |
| awgur@13 | 14 def __init__(self, db_name, db_user, db_passwd, *, host='localhost', port=5432): |
| awgur@13 | 15 self._db = DBM.connect( |
| awgur@13 | 16 host = host, |
| awgur@13 | 17 port = port, |
| awgur@13 | 18 user = db_user, |
| awgur@13 | 19 password = db_passwd, |
| awgur@13 | 20 database = db_name |
| awgur@13 | 21 ) |
| awgur@13 | 22 self.xact = self._db.xact |
| awgur@13 | 23 self.q = self._db.query |
| awgur@13 | 24 self.pq = self._db.prepare |
| awgur@13 | 25 self.ex = self._db.execute |
| awgur@13 | 26 self.proc = self._db.proc |
| awgur@13 | 27 self.close = self._db.close |
| awgur@13 | 28 |
| awgur@13 | 29 def __del__(self): |
| awgur@13 | 30 if self._db.state != 'closed': |
| awgur@13 | 31 self._db.close() |