Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bug no codigo da primeira aula de persistencia em mysql

No código apresentado na aula, tem um bug: Caso acerte o usuário e erre a senha, ele vai da erro, ta faltando um else no if que verifica a senha, arrumei no meu e ficou assim:

def autenticar():
    usuario = usuario_dao.buscar_por_id(request.form['usuario'])
    if usuario:
        if usuario.senha == request.form['senha']:
            session['usuario_logado'] = usuario.id
            flash(usuario.nome + ' logou com sucesso!')
            proxima_pagina = request.form['proxima']
            return redirect(proxima_pagina)
        else:
            flash('Não logado, tente novamente!')
            return redirect(url_for('login'))
    else:
        flash('Não logado, tente novamente!')
        return redirect(url_for('login'))

Como resolver esse problema sem duplicar código como eu fiz?

1 resposta
solução!

Tente assim:

def autenticar():
    usuario = usuario_dao.buscar_por_id(request.form['usuario'])
    if usuario and usuario.senha == request.form['senha']:
        session['usuario_logado'] = usuario.id
        flash(usuario.nome + ' logou com sucesso!')
        proxima_pagina = request.form['proxima']
        return redirect(proxima_pagina)
    else:
        flash('Não logado, tente novamente!')
        return redirect(url_for('login'))