Estou querendo criar um objeto 'db' para ser um banco de dados numa aplicação Flask, assim, passando esse objeto no construtor de uma classe Dao (chamada 'JogoDao', por meu projeto ter a ver com isso). Eu sei que, usando o MySQLdb, teria que fazer o seguinte:
# imports do Flask omitidos
from flask_mysqldb import MySQLdb
from dao import JogoDao # 'dao' é o nome do arquivo Python onde estão armazenados os objetos de acesso a dados do projeto.
app = Flask(__name__)
app.secret_key = 'chave'
app.config['MYSQL_HOST'] = "0.0.0.0"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = "admin"
app.config['MYSQL_DB'] = "jogoteca"
app.config['MYSQL_PORT'] = 3306
db = MySQLdb(app)
jogo_dao = JogoDao(db)
# ...
Porém, como tenho o PyMySQL instalado por questões de compatibilidade, não sei como proceder. Tentei fazer o seguinte:
# imports omitidos
import pymysql
pymysql.install_as_MySQLdb()
app = Flask(__name__)
app.secret_key = 'chave'
db = pymysql.connect(host="0.0.0.0",
user="root",
passwd="admin",
port=3306)
# tentei passar o parâmetro "MYSQL_DB", mas acabou contando como argumento inesperado
jogo_dao = JogoDao(db)
# ...
Além de não saber se essa é a forma correta, se tento rodar me é retornado um erro:
Traceback (most recent call last):
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 583, in connect
**kwargs)
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 727, in create_connection
raise err
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 716, in create_connection
sock.connect(sa)
OSError: [WinError 10049] O endereço solicitado não é válido no contexto
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Windows 10/PycharmProjects/jogoteca/jogoteca.py", line 15, in <module>
port=3306)
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 325, in __init__
self.connect()
File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 630, in connect
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '0.0.0.0' ([WinError 10049] O endereço solicitado não é válido no contexto)")
Process finished with exit code 1
Poderiam me ajudar nessa questão?
Grato.