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

Метод dispatch_request

Метод dispatch_request применяется к классу MethodView и вызывается Flask при поступлении запроса. Он определяет HTTP-метод запроса и вызывает соответствующий метод класса: get, post, put, patch или delete. Первым параметром передаётся переменная часть URL, если она есть в маршруте.

По умолчанию dispatch_request возвращает результат вызванного метода или ошибку 405, если подходящий метод не найден. Метод можно переопределить, чтобы добавить свою логику выбора обработчика.

Синтаксис

class MyView(MethodView): def dispatch_request(self, *args, **kwargs): return super().dispatch_request(*args, **kwargs)

Пример

Давайте создадим класс-представление и повесим его на адрес '/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' метод dispatch_request вызовет метод get и вернёт результат:

user get

Пример

Давайте примем параметр 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'))

Метод dispatch_request передаст параметр name в метод get. Результат для адреса '/user/abcde':

abcde

Пример

Давайте переопределим dispatch_request, чтобы вернуть ответ для всех методов сразу:

from flask import Flask from flask.views import MethodView app = Flask(__name__) class UserView(MethodView): def dispatch_request(self, *args, **kwargs): return 'dispatch ' + flask.request.method app.add_url_rule('/user', view_func=UserView.as_view('user'))

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

dispatch GET

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

  • класс MethodView,
    который создаёт представление на основе класса
  • метод as_view,
    который превращает класс в функцию-обработчик
  • метод get,
    который обрабатывает GET-запрос
  • метод post,
    который обрабатывает POST-запрос
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить