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

Метод as_view

Метод as_view применяется к классу MethodView и создаёт функцию-представление, которую Flask может использовать в качестве обработчика маршрута. Первым параметром передаётся имя представления. Это имя используется для построения URL через url_for и должно быть уникальным.

Класс MethodView позволяет описывать обработчики разных HTTP-методов в виде отдельных методов класса. Метод as_view связывает эти методы с соответствующими HTTP-запросами.

Синтаксис

Class.as_view(name, *class_args, **class_kwargs)

Пример

Давайте создадим класс-представление и привяжем его к маршруту через as_view:

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

Теперь при GET-запросе на адрес /user сработает метод get класса:

user page

Пример

Давайте добавим обработку POST-запроса в тот же класс:

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

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

create user

Пример

Давайте используем имя представления для построения URL через url_for:

from flask import Flask, url_for from flask.views import MethodView app = Flask(__name__) class UserView(MethodView): def get(self): return 'user page' app.add_url_rule( '/user', view_func=UserView.as_view('user_view') ) with app.test_request_context(): print(url_for('user_view'))

Результат выполнения кода:

"/user"

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

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