English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O protocolo HTTP é a base da comunicação de dados da World Wide Web. Ele define os métodos para recuperar diferentes dados de URLs específicas.
A tabela a seguir resume diferentes métodos HTTP -
Número | Método | Descrição |
1 | GET | Envie dados para o servidor de forma não criptografada, este é o método mais usado |
2 | HEAD | Como GET, mas sem corpo de resposta |
3 | POST | Usado para enviar dados de formulário HTML para o servidor. Os dados recebidos pelo método POST não são armazenados no cache do servidor. |
4 | PUT | Substitua todas as representações atuais dos recursos alvo com o conteúdo carregado |
5 | DELETE | Exclua todas as representações dos recursos alvo fornecidas pela URL |
Por padrão, as rotas do Flask respondem a solicitações GET. Mas, pode-se alterar essa preferência fornecendo parâmetros de método para o decorador route().
Para demonstrar o uso do método POST nas rotas de URL, primeiro crie um formulário HTML e envie os dados do formulário para a URL usando o método POST.
Salve o seguinte script em um arquivo: login.html
# Nome do Arquivo: example.py # Copyright: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Tratamento de métodos HTTP no Flask</title> </head> <body> <form action = "http://localhost:5000/login" method = "post"> <p>Insira o nome:</p> <p><input type = "text" name = "name" value=""/></p> <p><input type = "submit" value = "Enviar" /></p> </form> </body> </html>
Agora, no shell do Python, insira o seguinte script.
# Nome do Arquivo: example.py # Copyright: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/<name>') def success(name): return 'welcome %s' % name @app.route('/login', methods = ['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['name'] return redirect(url_for('success', name = user)) else: user = request.args.get('name') return redirect(url_for('success', name = user)) if __name__ == '__main__': app.run(debug = True)
Após o servidor de desenvolvimento começar a rodar, abra login.html no navegador, insira o nome no campo de texto (como: maxsu ) e clicar Enviar.
Os dados do formulário são enviados para a URL especificada pela propriedade action do tag <form>.
http://localhost:5000/login é mapeado para a função login(). Como o servidor recebeu dados através do método POST, o valor do parâmetro 'name' obtido a partir dos dados do formulário é passado da seguinte forma:-
# Nome do Arquivo: example.py # Copyright: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 user = request.form['name']
Como parte variável é passada para a URL:/success。 A mensagem de boas-vindas é exibida na janela do navegador.
Mude o parâmetro do método login.html para GET e abra novamente no navegador. Os dados recebidos pelo servidor são através do método GET. O valor do parâmetro 'name' agora é obtido da seguinte forma: -
# Nome do Arquivo: example.py # Copyright: 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data: 2020-08-08 User = request.args.get('name')
Aqui, args é um objeto dicionário, que contém uma série de parâmetros de formulário e seus valores correspondentes. Como antes, o valor correspondente ao parâmetro 'name' será passado para a URL:/success。