Метод put класса MethodView
Метод put применяется внутри класса, унаследованного от MethodView, и определяет логику обработки HTTP-запроса с методом PUT. Когда Flask получает PUT-запрос по URL, привязанному к этому классу, он создаёт экземпляр класса и вызывает метод put. Внутри метода доступен объект запроса request, из которого можно читать тело запроса, заголовки и другие данные. Возвращаемое значение метода становится телом HTTP-ответа.
Синтаксис
class MyView(MethodView):
def put(self):
return response
Пример
Давайте создадим представление на основе класса и повесим его на адрес '/user'. Обработчик PUT будет возвращать строку:
from flask import Flask
from flask.views import MethodView
app = Flask(__name__)
class UserView(MethodView):
def put(self):
return 'user updated'
app.add_url_rule('/user', view_func=UserView.as_view('user'))
Результат выполнения PUT-запроса по адресу /user:
user updated
Пример
Давайте прочитаем данные из тела PUT-запроса и вернём их обратно:
from flask import Flask, request
from flask.views import MethodView
app = Flask(__name__)
class UserView(MethodView):
def put(self):
data = request.get_json()
return data
app.add_url_rule('/user', view_func=UserView.as_view('user'))
Результат выполнения PUT-запроса с телом '{"name": "abcde"}':
{'name': 'abcde'}
Пример
Давайте вернём объект ответа с собственным статус-кодом:
from flask import Flask, request
from flask.views import MethodView
app = Flask(__name__)
class UserView(MethodView):
def put(self):
data = request.get_json()
return data, 201
app.add_url_rule('/user', view_func=UserView.as_view('user'))
Результат выполнения PUT-запроса с телом '{"name": "abcde"}':
{'name': 'abcde'}, 201
Смотрите также
-
класс
MethodView,
который создаёт представления на основе класса -
метод
get,
который обрабатывает GET-запросы -
метод
post,
который обрабатывает POST-запросы -
метод
delete,
который обрабатывает DELETE-запросы