Ir ao conteúdo
  • Cadastre-se
Dev0201

Python (Flask) Como criar um objeto MySQL usando PyMySQL?

Posts recomendados

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!