Boa noite, poderiam informar qual a diferença do render_template para o redirect ? No caso teria que renderizar a página primeiro ?
Boa noite, poderiam informar qual a diferença do render_template para o redirect ? No caso teria que renderizar a página primeiro ?
Olá Daniel, no vídeo 1 da parte 4 do curso (Melhorando o código e a usabilidade) é explicado essa diferença: https://cursos.alura.com.br/course/flask-rotas-templates-autenticacao/task/32404
Mas adiantando a discussão, o render_template()
é usado para renderizar uma página no navegador, por isso passamos a página como parâmetro, por exemplo: render_template('novo.html', titulo='Novo Jogo')
. Ele devolve a resposta novo.html
.
Já o redirect()
é usado quando queremos forçar que o navegador faça uma nova requisição. Por exemplo, após cadastrar um novo jogo, queremos redirecionar o cliente para a página da lista de jogos. Primeiro o cliente preenche o formulário e o servidor vai processar essa lógica e devolver uma reposta para o navegador dizendo se conseguiu ou não executar esse processamento. Caso tenha conseguido com sucesso, o navegador vai redirecionar para a página de lista, ou seja, vai fazer uma nova requisição para a url que processa a lista. Senão, redireciona para a url que processa o formulário de jogos novamente. Ou seja, ao fazer um redirect()
, o servidor informa o navegador que não quer mostrar página nenhuma, mas que ele deve fazer uma nova requisição (vai redirecionar para um outro recurso capaz de executar um processamento e renderizar um conteúdo). É por isso que o redirect()
recebe como parâmetro a url do recurso a ser redirecionado e não a página a ser renderizada.
Espero ter ajudado e bons estudos!