Flask - métodos HTTP
O protocolo Http é a base da comunicação de dados na rede mundial de computadores. Diferentes métodos de recuperação de dados do URL especificado são definidos neste protocolo.
A tabela a seguir resume os diferentes métodos http -
Sr. Não. | Métodos e Descrição |
---|---|
1 |
GET Envia dados de forma não criptografada para o servidor. Método mais comum. |
2 |
HEAD Igual a 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 em cache pelo servidor. |
4 |
PUT Substitui todas as representações atuais do recurso de destino com o conteúdo carregado. |
5 |
DELETE Remove todas as representações atuais do recurso de destino fornecidas por um URL |
Por padrão, a rota Flask responde ao GETsolicitações de. No entanto, essa preferência pode ser alterada fornecendo argumentos de métodos pararoute() decorador.
A fim de demonstrar o uso de POST no roteamento de URL, primeiro vamos criar um formulário HTML e usar o POST método para enviar dados de formulário para um URL.
Salve o seguinte script como login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
Agora insira o seguinte script no shell Python.
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['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.run(debug = True)
Depois que o servidor de desenvolvimento começar a funcionar, abra login.html no navegador, digite o nome no campo de texto e clique Submit.
Os dados do formulário são POSTADOS na cláusula URL in action da tag do formulário.
http://localhost/login é mapeado para o login()função. Como o servidor recebeu dados porPOST método, o valor do parâmetro 'nm' obtido a partir dos dados do formulário é obtido por -
user = request.form['nm']
É passado para ‘/success’URL como parte variável. O navegador exibe umwelcome mensagem na janela.
Altere o parâmetro do método para ‘GET’ dentro login.htmle abra-o novamente no navegador. Os dados recebidos no servidor são peloGETmétodo. O valor do parâmetro 'nm' é agora obtido por -
User = request.args.get(‘nm’)
Aqui, argsé um objeto de dicionário que contém uma lista de pares de parâmetros de formulário e seu valor correspondente. O valor correspondente ao parâmetro 'nm' é passado para o URL '/ sucesso' como antes.