3
respostas

[Dúvida] função flash() - FLASK com dupla incidencia no .html

Olá! Boa noite, estou aplicando o aprendizado no curso do Flask em um projeto extremamente semelhante, apenas como aprendizado:

Porém ao realizar um /logout, através do button criado, e retornar ao html de login, ambas mensagens de flash aparecem na tela. Segue imagem:

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

3 respostas
@app.route('/login')
def login():
    proxima = request.args.get('proxima')
    return render_template('login.html', proxima=proxima)
@app.route('/autenticar', methods=['POST', ])
def autenticar():
    # verificando formulario usuario contem no dict group_user
    if request.form['user'] in users:
        user = users[request.form['user']]
        # verifica senha do usuario contido na condicao
        if request.form['password'] == user.senha:
            session['usuario_logado'] = user.nickname
            flash(f'{user.nickname} logado com sucesso!')
            proxima_pagina = request.form['proxima']
            return redirect(url_for('main'))
    else:
        flash('Usuario nã́o encontrado.')
        return redirect(url_for('login'))
@app.route('/logout', methods=['GET', ])
def logout():
    session['usuario_logado'] = None
    flash('Logout efetuado com sucesso.')
    return redirect(url_for('login'))

Está complicado pesquisar o motivo desse erro na internet. Alguém para dar um retorno? Obrigado!

Olá Matheus, tudo bem com você?

Meus parabéns pela sua dedicação e esforço em ir além aplicando o que está aprendendo junto à Alura em outro projeto.

Pela descrição e pela imagem apresentada, temos um indício de que a função flash() está sendo executada duas vezes. Usando o código disponibilizado em conjunto dos códigos da aula, não obtive o mesmo resultado, neste caso a apresentação duplicada das mensagens.

Sem visualizar o seu código completo é incerto dizer o que está acontecendo, por isso, para que eu possa te ajudar de forma assertiva, peço que compartilhe seu projeto. Assim poderei realizar testes e simulações fazendo uso de todos os arquivos do projeto.

Peço que compacte a pasta do projeto e realize o upload dela em um site de compartilhamento, por exemplo, no Google Drive. Envie o link de compartilhamento da resposta desta postagem.

Abraços e bons estudos.

Fico no aguardo e à disposição