Flask: metodi HTTP
Il protocollo HTTP è il fondamento della comunicazione dati nel world wide web. In questo protocollo vengono definiti diversi metodi di recupero dei dati dall'URL specificato.
La tabella seguente riepiloga i diversi metodi http:
Sr.No. | Metodi e descrizione |
---|---|
1 | GET Invia i dati in forma non crittografata al server. Metodo più comune. |
2 | HEAD Uguale a GET, ma senza corpo di risposta |
3 | POST Utilizzato per inviare i dati del modulo HTML al server. I dati ricevuti dal metodo POST non vengono memorizzati nella cache dal server. |
4 | PUT Sostituisce tutte le rappresentazioni correnti della risorsa di destinazione con il contenuto caricato. |
5 | DELETE Rimuove tutte le rappresentazioni correnti della risorsa di destinazione fornita da un URL |
Per impostazione predefinita, la route Flask risponde al file GETrichieste. Tuttavia, questa preferenza può essere modificata fornendo l'argomento metodi aroute() decoratore.
Per dimostrare l'uso di POST nel routing degli URL, prima creiamo un modulo HTML e utilizziamo il POST metodo per inviare i dati del modulo a un URL.
Salva il seguente script come 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>
Ora inserisci il seguente script nella shell di 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)
Dopo l'avvio del server di sviluppo, aprire login.html nel browser, immettere il nome nel campo di testo e fare clic Submit.
I dati del modulo vengono inviati all'URL nella clausola di azione del tag del modulo.
http://localhost/login è mappato al login()funzione. Poiché il server ha ricevuto dati daPOST metodo, il valore del parametro 'nm' ottenuto dai dati del modulo è ottenuto da:
user = request.form['nm']
È passato a ‘/success’URL come parte variabile. Il browser visualizza un filewelcome messaggio nella finestra.
Modificare il parametro del metodo in ‘GET’ in login.htmle riaprilo nel browser. I dati ricevuti sul server sono diGETmetodo. Il valore del parametro 'nm' è ora ottenuto da -
User = request.args.get(‘nm’)
Qui, argsè un oggetto dizionario contenente un elenco di coppie di parametri del modulo e il valore corrispondente. Il valore corrispondente al parametro "nm" viene passato all'URL "/ success" come prima.