English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Métodos HTTP Flask

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úmeroMétodoDescrição
1GETEnvie dados para o servidor de forma não criptografada, este é o método mais usado
2HEADComo GET, mas sem corpo de resposta
3POSTUsado 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.
4PUTSubstitua todas as representações atuais dos recursos alvo com o conteúdo carregado
5DELETEExclua 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。