py.lib

Yohn Y. 2019-11-12 Parent:f35759c0fdd0

12:7874a3e2281e Go to Latest

py.lib/awNet/db/pg.py

. Устранено замечание по коду

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