Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

só consegui conectar no banco com o "import mysql.connector"

Pessoal só consegui conectar no banco usando o mysql.connector. Eu já tinha o Mysql instalado no computador e usava sempre o conector mysql.connector e rodava de boa. Quando fui instalar o flask_mysqldb deu um erro gigante, então eu apelei pro meu antigo método. Só que eu gostaria de saber como eu faço pra usar o método passado no curso, terei que reinstalar o banco de dados ? Reinstalar o python?Roda na última versão do Mysql?

Alguém por favor pode me ajudar?

segue abaixo o código usado:

import mysql.connector
print('Conectando...')
conn = mysql.connector.connect(user='root', password='123456', host='127.0.0.1')
c = conn.cursor()
# Descomente se quiser desfazer o banco...
#conn.cursor().execute("DROP DATABASE `jogoteca`;")
#conn.commit()

c.execute('CREATE DATABASE jogoteca')
c.execute('use jogoteca')

c.execute('CREATE TABLE `jogo` (`id` int(11) NOT NULL AUTO_INCREMENT,`nome` varchar(50) COLLATE utf8_bin NOT NULL,`categoria` varchar(40) COLLATE utf8_bin NOT NULL,`console` varchar(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;')

c.execute('CREATE TABLE `usuario` (`id` varchar(8) PRIMARY KEY NOT NULL,`nome` varchar(20) NOT NULL,`senha` varchar(8) NOT NULL)')

# inserindo usuarios

c.executemany('INSERT INTO jogoteca.usuario (id, nome, senha) VALUES (%s, %s, %s)',[('luan', 'Luan Marques', 'flask'),('nico', 'Nico', '7a1'),('danilo', 'Danilo', 'vegas')])
conn.commit()



c.execute('select * from jogoteca.usuario')
print(' -------------  Usuários:  -------------')
for user in c.fetchall():
    print(user[1])



# inserindo jogos
c.executemany('INSERT INTO jogoteca.jogo (nome, categoria, console) VALUES (%s, %s, %s)',[('God of War 4', 'Acao', 'PS4'),('NBA 2k18', 'Esporte', 'Xbox One'),('Rayman Legends', 'Indie', 'PS4'),('Super Mario RPG', 'RPG', 'SNES'),('Super Mario Kart', 'Corrida', 'SNES'),('Fire Emblem Echoes', 'Estrategia', '3DS'),])

c.execute('select * from jogoteca.jogo')
print(' -------------  Jogos:  -------------')
for jogo in c.fetchall():
    print(jogo[1])

# commitando senão nada tem efeito
conn.commit()
c.close()

insira seu código aqui

3 respostas

Alan,

Qual o erro que esta acontecendo?

Qual sua versão do Python?

Qual sua versão do Flask?

Qual a sua versão do MySQL?

O erro que dá quando vou instalar o mysqldb==0.2.0:

Running setup.py install for mysqlclient ... error ERROR: Complete output from command 'c:\users\alan\appdata\local\programs\python\python37-32\python.exe' -u -c 'import setuptools, tokenize;file='"'"'C:\Users\Alan\AppData\Local\Temp\pip-install-x1nby1py\mysqlclient\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\Alan\AppData\Local\Temp\pip-record-7jzlsx0u\install-record.txt' --single-version-externally-managed --compile: ERROR: running install running build running build_py creating build creating build\lib.win32-3.7 creating build\lib.win32-3.7\MySQLdb copying MySQLdb_init__.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\exceptions.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb creating build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants_init__.py -> build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants\FIELDTYPE.py -> build\lib.win32-3.7\MySQLdb\constants copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants running build_ext building 'MySQLdb.mysql' extension creating build\temp.win32-3.7 creating build\temp.win32-3.7\Release creating build\temp.win32-3.7\Release\MySQLdb C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversioninfo=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\alan\appdata\local\programs\python\python37-32\include -Ic:\users\alan\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS mysql.c MySQLdb/mysql.c(29): fatal error C1083: NÆo ‚ poss¡vel abrir arquivo incluir: 'mysql.h': No such file or directory

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
----------------------------------------

ERROR: Command "'c:\users\alan\appdata\local\programs\python\python37-32\python.exe' -u -c 'import setuptools, tokenize;file='"'"'C:\Users\Alan\AppData\Local\Temp\pip-install-x1nby1py\mysqlclient\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\Alan\AppData\Local\Temp\pip-record-7jzlsx0u\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Alan\AppData\Local\Temp\pip-install-x1nby1py\mysqlclient\

O Python está na versão 3.7

O MySQL client na versão 5.7

O MySQL Workbench na versão 6.3

O Flask na versão 1.1.1

solução!

Tive que regredir para o Python 3.6, reinstalar o MySQL na versão 8.0 e atualizar o pip para a versão 19.1.1. E então consegui instalar o flask_mysqldb==0.2.0