Не могу подключиться к базе данных python pymysql
разбираюсь в ООП и решил сделать класс подключения к базе данных с помощью библиотеки pymysql, и получается следующая ошибка:
Traceback (most recent call last):
File "connect_to_db.py", line 6, in <module>
class DBConnect(pymysql):
TypeError: module.__init__() takes at most 2 arguments (3 given)
Вот сам код
import pymysql
from pymysql.cursors import DictCursor
import socket
class DBConnect(pymysql): # наследуемся
def __init__(self,host,user,password,db,charset,cursorclass):
self.host = host
self.user = user
self.password = password
self.db = db
self.charset = charet
self.cursorclass = cursorclass
def connect_to_DB():
return pymysql.connect(host = 'localhost',user = 'admin',password = '0000',db =
'test_db',charset = 'utf8mb4',cursorclass = DictCursor)
db = DBConnect(pymysql.cursors)
db.connect_to_DB()
connection.close()
Ответы (1 шт):
Автор решения: Code Is my life
→ Ссылка
import pymysql
from pymysql.cursors import DictCursor
import socket
class DBConnect: # НЕ наследуемся
def __init__(self, host, user, password, db, charset, cursorclass):
self.host = host
self.user = user
self.password = password
self.db = db
self.charset = charset
self.cursorclass = cursorclass
def connect_to_DB(self):
return pymysql.connect(host=self.host, user=self.admin, password=self.password, db=self.db, charset=self.charset, cursorclass=self.cursorclass)
db = DBConnect('localhost', 'admin', '0000', 'test_db', 'utf8mb4', DictCursor)
connection = db.connect_to_DB()
connection.close()
Скорее всего тут еще ошибки есть, я не вникал в устройство pymysql.connect, вероятно неверно выбраны передаваемые атрибуты. Советую прочитать про то, как работает self - это можно сказать главная ошибка. Кроме того, наследование не применяется к модулям, только к классам.