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

Metodi HTTP Flask

Il protocollo HTTP è la base della comunicazione dei dati del World Wide Web. Definisce i metodi per recuperare diversi dati da un URL specifico.

La tabella seguente riassume i diversi metodi HTTP -

NumeroMetodoDescrizione
1GETInviare i dati in forma non crittografata al server, questo è il metodo più comune.
2HEADCome GET, ma senza corpo della risposta
3POSTUsato per inviare dati di modulo HTML al server. I dati ricevuti tramite metodo POST non vengono memorizzati nel cache del server.
4PUTSostituisci tutte le rappresentazioni correnti delle risorse di destinazione con il contenuto caricato.
5DELETEElimina tutte le rappresentazioni di tutti i risorse di destinazione fornite dall'URL

Per impostazione predefinita, le rotte Flask rispondono alle richieste GET. Tuttavia, è possibile modificare questa preferenza fornendo i parametri del metodo a decoratore route().

Per dimostrare l'uso del metodo POST nelle rotte URL, crea prima un modulo HTML e invia i dati del modulo all'URL utilizzando il metodo POST.

Salva il seguente script nel file: login.html

# Nome del file: example.py
# Copyright: 2020 Da w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title>Flask HTTP request method handling</title>
 </head>
    <body>
       <form action = "http://localhost:5000/login" method = "post">
          <p>Inserisci il nome:</p>
          <p><input type = "text" name = "name" value=""/></p>
          <p><input type = "submit" value = "Invia" /></p>
       </form>
    </body>
 </html>

Ora inserisci il seguente script nel shell di Python.

# Nome del file: example.py
# Copyright: 2020 Da w3codebox
# Autore: it.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)

Dopo che il server di sviluppo è iniziato, apri login.html nel browser, inserisci il nome (ad esempio, maxsu ) e clicca Invia.

I dati del modulo vengono inviati all'URL specificato dall'attributo action del tag <form>.

http://localhost:5000/login è mappato alla funzione login(). Poiché il server ha ricevuto i dati tramite metodo POST, il valore del parametro 'name' può essere ottenuto dai dati del modulo come segue -

# Nome del file: example.py
# Copyright: 2020 Da w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
user = request.form['name']

Viene trasmesso come parte variabile all'URL:/success. Il browser visualizza un messaggio di benvenuto nella finestra.

Modifica il metodo del parametro di login.html in GET e apri di nuovo nel browser. I dati ricevuti dal server sono tramite metodo GET. Il valore del parametro 'name' ora può essere ottenuto come segue -

# Nome del file: example.py
# Copyright: 2020 Da w3codebox
# Autore: it.oldtoolbag.com
# Data: 2020-08-08
User = request.args.get('name')

Qui, args è un oggetto dizionario, che contiene una serie di parametri di modulo e i loro valori corrispondenti. Come prima, il valore corrispondente al parametro 'name' viene trasmesso all'URL:/success.