1
resposta

DICA UTILIZANDO URL_FOR()

Gostaria de compartilhar uma dicas sobre como corrigir um erro que pode surgir ao usar o url_for(). Parece algo bobo, mas acredite, levei um tempo até entender o que estava acontecendo. Imagino que outras pessoas podem estar com o mesmo problema, então vim aqui compartilhar minha solução.

O url_for() adiciona automaticamente uma barra antes do nome da rota, o que pode causar erros ao redirecionar do login para cadastrar um novo jogo na lista. Para corrigir isso, removi manualmente essa barra. Veja como fiz:

Observação: O meu cadastrar_jogo é o novo de vocês!!

@app.route('/cadastrar_jogo')
def cadastrar_jogo():
    if 'usuario_logado' not in session or session['usuario_logado'] == None:
        proxima = url_for('cadastrar_jogo')
        proxima = proxima.lstrip('/') # Remove a / antes do nome de rota
        return redirect(url_for('login', proxima=proxima))
    return render_template('cadastro.html', titulo='CADASTRAR NOVO JOGO')

Outro problema que vocês podem encontrar é ao acessar o login diretamente, resultando em uma URL como "http://127.0.0.1:5000/None". Para resolver isso, basta verificar se "proxima" é diferente de None no login. Se for, redirecionamos para "proxima"; caso contrário, redirecionamos para o diretório de login por padrão. Aqui está o exemplo de código:

@app.route('/login')
def login():
    proxima = request.args.get('proxima')
    if proxima != None:
        return render_template('login.html', titulo='LOGIN', proxima=proxima)
    else:
        return render_template('login.html', titulo='LOGIN')

Espero que a minha dificuldade possa ajudar nas dúvidas de vocês, tmj!

1 resposta

Oi, Gabriel! Tudo bem?

Muito obrigada por compartilhar sua experiência e solução com a comunidade, sua contribuição é muito valiosa e com certeza ajudará outros estudantes que possam estar enfrentando o mesmo problema! Continue compartilhando suas experiências e soluções e caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software