1
resposta

Erro redirecionamento

Quando tento redirecionar para a página "novo" sem estar com usuário logado recebo o seguinte erro:

werkzeug.routing.BuildError: Could not build url for endpoint '/novo'. Did you mean 'novo' instead?

Porém na url do navegador está escrito de maneira correta: http://127.0.0.1:5000/login?proxima=%2Fnovo

Segue código que estou usando para a rota novo:


@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')
1 resposta

Oi Guilherme, tudo bom?

Pelo erro: werkzeug.routing.BuildError: Could not build url for endpoint '/novo'. Did you mean 'novo' instead? Podemos ver que o problema é o nome da action.

Na verdade, estamos passando o valor errado nessa url:

http://127.0.0.1:5000/login?proxima=%2Fnovo

Repare que o parâmetro proxima tem um %2F na frente de novo, que é uma forma de criptografar o character /.

Isso significa que o valor que está sendo passado é /novo

Porém, o nome da action é novo, sem a barra =)

Espero ter ajudado!

Abraço