English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
HTTP-протокол является основой для передачи данных в Интернете. Он определяет методы извлечения различных данных из указанного URL.
В таблице ниже приведены различные методы HTTP -
Номер | Метод | Описание |
1 | GET | Данные передаются на сервер в незашифрованном виде, это наиболее часто используемый метод. |
2 | HEAD | Как и GET, но без тела ответа |
3 | POST | Используется для отправки данных HTML-формы на сервер. Данные, полученные с помощью метода POST, не сохраняются на сервере. |
4 | PUT | Заменить все текущие представления целевого ресурса загруженным содержимым. |
5 | DELETE | Удалить все ресурсы, указанные в URL, и все их представления |
По умолчанию, маршруты Flask отвечают на запросы GET. Однако, можно изменить этот параметр, предоставив метод в декораторе route().
Чтобы продемонстрировать использование метода POST в URL-маршрутизации, сначала создайте HTML-форму и отправьте данные формы на URL с помощью метода POST.
Сохраните следующий скрипт в файл: login.html
# Файл: example.py # Авторские права: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Обработка HTTP-запросов Flask</title> </head> <body> <form action="http://localhost:5000/login" method="post"> <p>Введите имя:</p> <p><input type="text" name="name" value=""/></p> <p><input type="submit" value="Подтвердить"/></p> </form> </body> </html>
Теперь в Python shell введите следующую скрипт.
# Файл: example.py # Авторские права: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 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)
После запуска разработчика сервера откройте login.html в браузере, введите имя (например,) maxsu ) и нажмите Отправить.
Формулярные данные отправляются на URL, указанный в атрибуте action тега <form>.
http://localhost:5000/login маппинг к функции login(). Поскольку данные были получены от сервера через метод POST, значение параметра 'name' можно получить из данных формы следующим образом -
# Файл: example.py # Авторские права: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 user = request.form['name']
Он передается как переменная часть в URL:/success. Браузер отображает приветственное сообщение в окне.
Измените параметр метода в login.html на GET и откройте его в браузере снова. Полученные на сервере данные передаются через метод GET. Значение параметра 'name' теперь можно получить следующим образом -
# Файл: example.py # Авторские права: 2020 By w3codebox # Автор: ru.oldtoolbag.com # Дата: 2020-08-08 User = request.args.get('name')
Здесь, args является объектом словаря, который содержит множество параметров форм и их соответствующие значения. Как и раньше, значение, соответствующее параметру 'name', передается в URL:/success.