1
resposta

render_template X redirect

Boa noite, poderiam informar qual a diferença do render_template para o redirect ? No caso teria que renderizar a página primeiro ?

1 resposta

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!