English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 -
Numero | Metodo | Descrizione |
1 | GET | Inviare i dati in forma non crittografata al server, questo è il metodo più comune. |
2 | HEAD | Come GET, ma senza corpo della risposta |
3 | POST | Usato per inviare dati di modulo HTML al server. I dati ricevuti tramite metodo POST non vengono memorizzati nel cache del server. |
4 | PUT | Sostituisci tutte le rappresentazioni correnti delle risorse di destinazione con il contenuto caricato. |
5 | DELETE | Elimina 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.