Учебники

Flask — HTTP методы

Протокол Http является основой передачи данных во всемирной паутине. В этом протоколе определены различные методы извлечения данных из указанного URL.

В следующей таблице приведены различные методы http —

Sr.No. Методы и описание
1

ПОЛУЧИТЬ

Отправляет данные в незашифрованном виде на сервер. Самый распространенный метод.

2

ГОЛОВА

То же, что GET, но без тела ответа

3

СООБЩЕНИЕ

Используется для отправки данных формы HTML на сервер. Данные, полученные методом POST, не кэшируются сервером.

4

ПОЛОЖИЛ

Заменяет все текущие представления целевого ресурса на загруженный контент.

5

УДАЛЯТЬ

Удаляет все текущие представления целевого ресурса, заданного URL

ПОЛУЧИТЬ

Отправляет данные в незашифрованном виде на сервер. Самый распространенный метод.

ГОЛОВА

То же, что GET, но без тела ответа

СООБЩЕНИЕ

Используется для отправки данных формы HTML на сервер. Данные, полученные методом POST, не кэшируются сервером.

ПОЛОЖИЛ

Заменяет все текущие представления целевого ресурса на загруженный контент.

УДАЛЯТЬ

Удаляет все текущие представления целевого ресурса, заданного URL

По умолчанию маршрут Flask отвечает на запросы GET . Однако это предпочтение можно изменить, указав аргумент методов для метода route () .

Чтобы продемонстрировать использование метода POST в маршрутизации URL, сначала давайте создадим форму HTML и используем метод POST для отправки данных формы в URL.

Сохраните следующий скрипт как login.html

 <HTML>
    <Тело>
       <form action = "http: // localhost: 5000 / login" method = "post">
          <p> Введите имя: </ p>
          <p> <input type = "text" name = "nm" /> </ p>
          <p> <input type = "submit" value = "submit" /> </ p>
       </ Форма>
    </ Body>
 </ Html>

Теперь введите следующий скрипт в оболочку Python.

 из колбы импорт колба, редирект, url_for, запрос
 app = Flask (__name__)

 @ App.route ( '/ успех / <имя>')
 def success (имя):
    вернуть 'добро пожаловать% s'% name

 @ app.route ('/ login', method = ['POST', 'GET'])
 def login ():
    if request.method == 'POST':
       user = request.form ['nm']
       возврат перенаправления (url_for ('success', name = user))
    еще:
       user = request.args.get ('nm')
       возврат перенаправления (url_for ('success', name = user))

 если __name__ == '__main__':
    app.run (debug = True)

После запуска сервера разработки откройте в браузере файл login.html , введите имя в текстовое поле и нажмите « Отправить» .

Пример метода сообщения

Данные формы помещаются в URL в предложении действия тега формы.

http: // localhost / login сопоставлен с функцией login () . Поскольку сервер получил данные методом POST , значение параметра «nm», полученное из данных формы, получается путем —

 user = request.form ['nm']

Он передается в URL «/ success» как переменная часть. Браузер отображает приветственное сообщение в окне.

Приветственное сообщение

Измените параметр метода на «GET» в login.html и снова откройте его в браузере. Данные, полученные на сервере, получены методом GET . Значение параметра «nm» теперь получается с помощью —

 User = request.args.get ('nm')

Здесь args — объект словаря, содержащий список пар параметра формы и его соответствующее значение. Значение, соответствующее параметру «nm», передается в URL «/ success», как и раньше.