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

Метод as_view

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

Синтаксис

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

Пример

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

from flask import Flask from flask.views import View app = Flask(__name__) class IndexView(View): def dispatch_request(self): return 'hello' app.add_url_rule('/', view_func=IndexView.as_view('index'))

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

hello

Пример

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

from flask import Flask from flask.views import View app = Flask(__name__) class UserView(View): def __init__(self, greeting): self.greeting = greeting def dispatch_request(self, name): return self.greeting + ', ' + name app.add_url_rule('/user/<name>', view_func=UserView.as_view('user', greeting='hello'))

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

<+html+> hello, abcde <-html+>

Пример

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

from flask import Flask, url_for from flask.views import View app = Flask(__name__) class IndexView(View): def dispatch_request(self): return 'hello' app.add_url_rule('/', view_func=IndexView.as_view('index')) with app.test_request_context(): res = url_for('index') print(res)

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

'/'

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

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