РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
365 of 643 menu

Класс MethodView

Класс MethodView применяется для создания классов-представлений, в которых каждый HTTP-метод обрабатывается отдельным методом класса. Наследник MethodView определяет методы get, post, put, patch, delete и другие. Затем класс регистрируется через add_url_rule с помощью метода as_view, который превращает класс в функцию-обработчик.

Синтаксис

from flask.views import MethodView class MyView(MethodView): def get(self): ... def post(self): ... app.add_url_rule('/path/', view_func=MyView.as_view('name'))

Пример

Давайте создадим класс-представление с методами get и post и зарегистрируем его по адресу '/user':

from flask import Flask from flask.views import MethodView app = Flask(__name__) class UserView(MethodView): def get(self): return 'user get' def post(self): return 'user post' app.add_url_rule('/user', view_func=UserView.as_view('user'))

Результат выполнения GET-запроса к адресу '/user':

user get

Результат выполнения POST-запроса к адресу '/user':

user post

Пример

Давайте передадим параметр name из URL в метод класса-представления:

from flask import Flask from flask.views import MethodView app = Flask(__name__) class UserView(MethodView): def get(self, name): return name app.add_url_rule('/user/<name>', view_func=UserView.as_view('user'))

Результат выполнения кода для адреса '/user/abcde':

abcde

Пример

Давайте укажем имя эндпоинта и разрешённые HTTP-методы при регистрации класса-представления:

from flask import Flask from flask.views import MethodView app = Flask(__name__) class ArticleView(MethodView): def get(self): return 'article get' def delete(self): return 'article delete' app.add_url_rule( '/article', view_func=ArticleView.as_view('article'), methods=['GET', 'DELETE'] )

Результат выполнения DELETE-запроса к адресу '/article':

article delete

Смотрите также

  • метод as_view,
    который превращает класс в функцию-обработчик
  • метод dispatch_request,
    который выбирает метод класса по HTTP-методу
  • класс View,
    базовый класс для создания представлений
  • метод init_every_request,
    который определяет создание экземпляра на каждый запрос
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить