Атрибут method
Атрибут method применяется к объекту запроса
request и возвращает HTTP-метод, с которым
пришёл текущий запрос. Значением всегда является
строка в верхнем регистре, например 'GET',
'POST', 'PUT', 'DELETE',
'PATCH' или 'HEAD'. Атрибут доступен
внутри функции-обработчика и не принимает параметров.
Атрибут method удобно использовать для ветвления
логики внутри одного обработчика, когда один и тот же
адрес обслуживает несколько HTTP-методов.
Синтаксис
request.method
Пример
Давайте выведем HTTP-метод текущего запроса:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return request.method
Результат выполнения кода для GET-запроса:
GET
Пример
Давайте повесим один обработчик на несколько методов
и вернём разный ответ в зависимости от значения
method:
from flask import Flask, request
app = Flask(__name__)
@app.route('/user', methods=['GET', 'POST'])
def user():
if request.method == 'POST':
return 'created'
return 'shown'
Результат выполнения кода для GET-запроса:
shown
Результат выполнения кода для POST-запроса:
created
Пример
Давайте проверим метод запроса и вернём ошибку, если
он не равен 'GET':
from flask import Flask, request
app = Flask(__name__)
@app.route('/article')
def article():
if request.method != 'GET':
return 'method not allowed', 405
return 'article'
Результат выполнения кода для GET-запроса:
article