validate_on_submit e tokens CSRF
Processe envios válidos e bloqueie falsificações.
validate_on_submit e tokens CSRF é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
O método essencial
Flask-WTF oferece um método que verifica tudo de uma só vez. validate_on_submit é o núcleo do processamento seguro de qualquer formulário. 🔑
O que ele realmente verifica
validate_on_submit retorna True somente quando a requisição é um POST e todos os validadores são aprovados. Uma única chamada cobre as duas condições.
if form.validate_on_submit():
pass # safe to use the dataO padrão de visualização
Este formato se repete em toda aplicação Flask: crie o formulário, tome uma decisão com base em validate_on_submit e, depois, continue até renderizar a página.
form = LoginForm()
if form.validate_on_submit():
return redirect('/home')
return render_template('login.html', form=form)Enviado versus válido
Não confunda os dois. is_submitted verifica apenas o método, enquanto validate_on_submit também confirma que os dados passaram por todas as regras.
form.is_submitted() # POST?
form.validate_on_submit() # POST and valid?Por que CSRF é importante
Um ataque de CSRF engana um usuário conectado para que ele envie um formulário que nunca pretendeu enviar. Os tokens comprovam que a requisição veio da sua própria página.
SECRET_KEY é obrigatório
Os tokens CSRF são assinados, portanto o Flask precisa de uma SECRET_KEY. Sem ela, a validação falha e o Flask-WTF se recusa a proteger o formulário.
app.config['SECRET_KEY'] = 'change-me-in-production'O token na página
A chamada a hidden_tag incorpora o token assinado como uma entrada oculta. O navegador o envia de volta em cada envio.
{{ form.hidden_tag() }}A validação compara tokens
Ao enviar, o Flask-WTF compara o token enviado com o token da sessão. Um token ausente ou expirado faz validate_on_submit retornar False.
if not form.validate_on_submit():
pass # bad token or failed ruleVerificar por que falhou
Quando a validação falhar, consulte form.errors. Ele associa cada nome de campo à lista de mensagens que explicam o problema.
if not form.validate_on_submit():
print(form.errors)Processar e redirecionar
Depois de um envio bem-sucedido, finalize com um redirecionamento. Isso segue o padrão PRG e impede que uma atualização envie os dados duas vezes.
if form.validate_on_submit():
save(form.data)
return redirect('/done')Nunca desative CSRF sem critério
Você pode desativar CSRF para APIs, mas nunca para formulários do navegador. Manter a proteção ativada é o que torna o Flask-WTF útil.
Verificação rápida
Quando form.validate_on_submit() retorna True?
Recapitulação
Você usou validate_on_submit para verificar o método e as regras, definiu uma SECRET_KEY para os tokens CSRF assinados e redirecionou após o sucesso. 🛡️
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “validate_on_submit e tokens CSRF” é grátis?
Sim — o texto completo de “validate_on_submit e tokens CSRF” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “validate_on_submit e tokens CSRF”?
Processe envios válidos e bloqueie falsificações. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “validate_on_submit e tokens CSRF”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Defina uma classe FlaskForm
- Renderize e envie um formulário
- validate_on_submit e tokens CSRF
- Validadores personalizados e erros de campo