Flask - методы HTTP
Протокол Http - это основа передачи данных во всемирной паутине. В этом протоколе определены различные методы получения данных с указанного URL.
В следующей таблице приведены различные методы http -
Sr. No. | Методы и описание |
---|---|
1 | GET Отправляет данные на сервер в незашифрованном виде. Самый распространенный метод. |
2 | HEAD То же, что GET, но без тела ответа |
3 | POST Используется для отправки данных HTML-формы на сервер. Данные, полученные методом POST, сервером не кэшируются. |
4 | PUT Заменяет все текущие представления целевого ресурса загруженным контентом. |
5 | DELETE Удаляет все текущие представления целевого ресурса, заданные URL-адресом |
По умолчанию маршрут Flask отвечает на GETЗапросы. Однако это предпочтение можно изменить, предоставив аргумент метода дляroute() декоратор.
Чтобы продемонстрировать использование POST в маршрутизации URL-адресов, сначала давайте создадим HTML-форму и воспользуемся POST для отправки данных формы по URL-адресу.
Сохраните следующий скрипт как 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>
Теперь введите следующий скрипт в оболочку 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)
После запуска сервера разработки откройте login.html в браузере введите имя в текстовое поле и нажмите Submit.
Данные формы отправляются POST на URL-адрес в предложении действия тега формы.
http://localhost/login отображается на login()функция. Поскольку сервер получил данные отPOST метода, значение параметра 'nm', полученное из данных формы, получается:
user = request.form['nm']
Передано ‘/success’URL как переменная часть. В браузере отображаетсяwelcome сообщение в окне.
Измените параметр метода на ‘GET’ в login.htmlи снова откройте его в браузере. Данные, полученные на сервере,GETметод. Значение параметра 'nm' теперь получается:
User = request.args.get(‘nm’)
Вот, args- объект словаря, содержащий список пар параметра формы и соответствующего ему значения. Значение, соответствующее параметру «nm», передается по URL-адресу «/ success», как и раньше.