3
respostas

No module named 'flask_mysqldb

Quando tento rodar, aparece o erro 'No module named 'flask_mysqldb'

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu faço a instalação

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém, ao rodar novamente consta o mesmo erro.

3 respostas

Versões:

Python: 3.10.4 Pip: 22.1.1

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

from flask import Flask, render_template, request, redirect, session, flash, url_for
from models import Jogo, Usuario, lista
from dao import JogoDao
from flask_mysqldb import MySQL

app = Flask(__name__)
app.secret_key = 'alura'

app.config['MYSQL_HOST'] = "0.0.0.0"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = "7uSawZkgoDfwvy"
app.config['MYSQL_DB'] = "jogoteca"
app.config['MYSQL_PORT'] = 3306
db = MySQL(app)

jogo_dao = JogoDao(db)

usuario1 = Usuario("Victor Salmeron", "VS", "alohomora")
usuario2 = Usuario("Vanessa Bondes", "VB", "victorh")
usuario3 = Usuario("Maria Eduarda", 'ME', "belinha")

usuarios = { usuario1.nickname : usuario1,
             usuario2.nickname : usuario2,
             usuario3.nickname : usuario3 }

@app.route('/')
def index():

    return render_template('lista.html', titulo='Jogos', jogos = lista)

@app.route('/novo')
def novo():
    if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return redirect(url_for('login', proxima=url_for('novo')))
    return render_template('novo.html', titulo='Novo Jogo')

@app.route('/criar', methods=['POST',])
def criar():
    nome = request.form['nome']
    categoria = request.form['categoria']
    console = request.form['console']
    jogo = Jogo(nome, categoria, console)
    jogo_dao.salvar(jogo)
    return redirect(url_for('index'))

@app.route('/login')
def login():
    proxima = request.args.get('proxima')
    return render_template('login.html', proxima=proxima)

@app.route('/autenticar', methods=['POST'])
def autenticar():
    if request.form['usuario'] in usuarios:
        usuario = usuarios[request.form['usuario']]
        if request.form['senha'] == usuario.senha:
            session['usuario_logado'] = usuario.nickname
            flash(usuario.nickname + ' logado com sucesso!')
            proxima_pagina = request.form['proxima']
            return redirect(proxima_pagina)
    else:
        flash('Usuário não logado!')
        return redirect(url_for('login'))

@app.route('/logout')
def logout():
    session['usuario_logado'] = None
    flash('Logout efetuado com sucesso!')
    return redirect(url_for('index'))

app.run(debug=True)

Olá Victor, tudo bem com você?

Peço desculpas pela demora no retorno.

Realizei simulações com o código enviado e o mesmo está funcionando como esperado.

A mensagem de erro apresentada, No module named 'flask_mysqldb, está informando que não foi encontrado a biblioteca flask_mysqldb. Pela imagem de confirmação da instalação, há indícios de que foi feito a instalação da biblioteca MySQL, mas no nosso código irá precisar da função MySQL que pertence à biblioteca flask_mysqldb.

Peço que realize a instalação da biblioteca flask_mysqldb, como apresentado nos passos abaixo.

  • Abra o Pycharm, e carregue o seu projeto criado usando o Flask. Na parte inferior da tela clique em Terminal. Será aberto o terminal integrado no Pycharm, nesse momento execute o comando abaixo para realizar a instalação da biblioteca.
      python -m pip install Flask-MySQLdb==0.2.0
  • Após a instalação, basta executar o arquivo jogoteca.py, clicando com o botão direito do mouse sobre o arquivo e escolhendo Run 'jogoteca'.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!