0Pricing
Python Academy · Aula

Formulários e dados da solicitação

Processe dados fornecidos pelo usuário

Formulários e dados da solicitação é uma aula grátis de Python 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 Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

O objeto request

O Flask fornece a cada visualização acesso a um objeto global request que contém todos os dados recebidos: campos de formulário, strings de consulta, JSON, cabeçalhos e muito mais.

from flask import Flask, request
app = Flask(__name__)
# request is available inside any view
print('request carries the incoming data')

Parâmetros da string de consulta

Os dados depois de ? na URL ficam em request.args. Use .get() para ler um valor com segurança.

from flask import Flask, request
app = Flask(__name__)

@app.route('/search')
def search():
    term = request.args.get('q', '')
    return 'Searching for ' + term
print('/search?q=cats -> request.args')

Um formulário HTML

Um formulário envia dados quando é submetido. Os atributos method e action determinam como e para onde os dados serão enviados.

# <form method='POST' action='/login'>
#   <input name='username'>
#   <input name='password' type='password'>
#   <button>Submit</button>
# </form>
print('Form posts username and password')

Lendo dados do formulário

Os campos submetidos do formulário chegam em request.form. Acesse-os pelo atributo name do campo de entrada.

from flask import Flask, request
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    user = request.form['username']
    return 'Welcome ' + user
print('request.form holds posted fields')

Acesso seguro com get

Usar request.form['x'] gera um erro se a chave estiver ausente. Prefira request.form.get('x'), que retorna None em vez disso.

from flask import Flask, request
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    user = request.form.get('username')
    if not user:
        return 'Missing username', 400
    return 'Welcome ' + user
print('.get avoids KeyError')

GET e POST em uma visualização

Um padrão comum é exibir o formulário em GET e processar os dados em POST, tudo na mesma visualização.

from flask import Flask, request, render_template
app = Flask(__name__)

@app.route('/contact', methods=['GET', 'POST'])
def contact():
    if request.method == 'POST':
        return 'Thanks, ' + request.form.get('name', 'friend')
    return render_template('contact.html')
print('One view, two methods')

Validando dados de entrada

Nunca confie nos dados fornecidos pelo usuário. Verifique se os campos obrigatórios existem e têm valores razoáveis antes de usá-los.

from flask import Flask, request
app = Flask(__name__)

@app.route('/age', methods=['POST'])
def age():
    raw = request.form.get('age', '')
    if not raw.isdigit():
        return 'Age must be a number', 400
    return 'Age is ' + raw
print('Validate before trusting input')

Lendo JSON

Clientes de API costumam enviar JSON. request.get_json() analisa o corpo e o transforma em um dicionário Python.

from flask import Flask, request
app = Flask(__name__)

@app.route('/api', methods=['POST'])
def api():
    data = request.get_json()
    return 'Got name ' + data.get('name', '?')
print('get_json parses the JSON body')

Envios de arquivos

Os arquivos enviados ficam em request.files. Salve um deles com seu método .save() depois de validá-lo.

from flask import Flask, request
app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload():
    f = request.files.get('photo')
    if f:
        return 'Received ' + f.filename
    return 'No file', 400
print('request.files holds uploads')

Redirecionando após POST

Depois de processar um formulário, redirecione o usuário para evitar envios duplicados ao atualizar a página. Use redirect(url_for(...)).

from flask import Flask, redirect, url_for
app = Flask(__name__)

@app.route('/done')
def done():
    return 'All done'

@app.route('/save', methods=['POST'])
def save():
    return redirect(url_for('done'))
print('Post/Redirect/Get pattern')

Mensagens instantâneas

flash() armazena uma mensagem de uso único, exibida depois de um redirecionamento, sendo ideal para confirmações como 'Salvo com sucesso'.

from flask import Flask, flash, redirect, url_for
app = Flask(__name__)
app.secret_key = 'change-me'

@app.route('/save', methods=['POST'])
def save():
    flash('Saved successfully')
    return redirect(url_for('save'))
print('flash shows a one-time message')

Verificação rápida

Teste seus conhecimentos sobre processamento de formulários.

Recapitulação

Você processou dados fornecidos pelo usuário no Flask.

  • request.args para strings de consulta, request.form para campos de formulário
  • request.get_json() para corpos JSON, request.files para envios de arquivos
  • Sempre valide os dados de entrada e use .get() para acessá-los com segurança
  • Use POST/Redirecionamento/GET e flash() para uma experiência de usuário mais limpa

Perguntas Frequentes

A aula “Formulários e dados da solicitação” é grátis?

Sim — o texto completo de “Formulários e dados da solicitação” é 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 Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Formulários e dados da solicitação”?

Processe dados fornecidos pelo usuário Você pratica Python 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 Python Academy?

Nenhuma experiência prévia é necessária. Python 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 “Formulários e dados da solicitação”?

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 Python Academy?

Sim. Cada aula de Python 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

  1. Rotas e visualizações
  2. Modelos com Jinja2
  3. Formulários e dados da solicitação
  4. Construção de um endpoint REST
← Voltar para Python Academy