Boa noite, poderiam informar qual a diferença do render_template para o redirect ? No caso teria que renderizar a página primeiro ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!