Flask - metody HTTP
Protokół HTTP jest podstawą komunikacji danych w sieci WWW. W tym protokole zdefiniowano różne metody pobierania danych z określonego adresu URL.
W poniższej tabeli podsumowano różne metody protokołu HTTP -
Sr.No. | Metody i opis |
---|---|
1 | GET Wysyła dane w niezaszyfrowanej formie na serwer. Najpopularniejsza metoda. |
2 | HEAD To samo co GET, ale bez treści odpowiedzi |
3 | POST Służy do wysyłania danych formularza HTML na serwer. Dane otrzymane metodą POST nie są buforowane przez serwer. |
4 | PUT Zastępuje wszystkie bieżące reprezentacje zasobu docelowego przesłaną treścią. |
5 | DELETE Usuwa wszystkie bieżące reprezentacje zasobu docelowego podane przez adres URL |
Domyślnie trasa Flask odpowiada na plik GETupraszanie. Jednak tę preferencję można zmienić, podając argument metodyroute() dekorator.
Aby zademonstrować użycie POST w routingu adresów URL, najpierw utwórzmy formularz HTML i użyj POST metoda wysyłania danych formularza na adres URL.
Zapisz następujący skrypt jako 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>
Teraz wprowadź następujący skrypt w powłoce Pythona.
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)
Po uruchomieniu serwera deweloperskiego otwórz login.html w przeglądarce wprowadź nazwę w polu tekstowym i kliknij Submit.
Dane formularza są wysyłane do adresu URL w klauzuli działania znacznika formularza.
http://localhost/login jest zmapowany do login()funkcjonować. Ponieważ serwer otrzymał dane przezPOST metoda, wartość parametru 'nm' otrzymana z danych formularza otrzymujemy wzorem -
user = request.form['nm']
To jest przekazywane ‘/success’URL jako część zmienna. Przeglądarka wyświetla plikwelcome wiadomość w oknie.
Zmień parametr metody na ‘GET’ w login.htmli otwórz go ponownie w przeglądarce. Dane odebrane na serwerze są przezGETmetoda. Wartość parametru 'nm' jest teraz uzyskiwana przez -
User = request.args.get(‘nm’)
Tutaj, argsjest obiektem słownika zawierającym listę par parametrów formularza i odpowiadającą im wartość. Wartość odpowiadająca parametrowi „nm” jest przekazywana do adresu URL „/ success”, jak poprzednio.