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

Класс View

Класс View применяется для создания представлений на основе классов. Он наследуется от класса View из модуля flask.views. В классе необходимо определить методы, соответствующие HTTP-методам, например get, post, put. Первым параметром методы принимают self, остальные параметры передаются из URL. Регистрация класса осуществляется через метод add_url_rule или через метод as_view.

Синтаксис

from flask.views import View class MyView(View): def dispatch_request(self): pass

Пример

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

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'))

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

<+html+> hello <-html+>

Пример

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

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

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

<+html+> abcde <-html+>

Пример

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

from flask import Flask, request from flask.views import View app = Flask(__name__) class ArticleView(View): def dispatch_request(self): if request.method == 'GET': return 'article' elif request.method == 'POST': return 'created' app.add_url_rule('/article', view_func=ArticleView.as_view('article'))

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

<+html+> article <-html+>

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

<+html+> created <-html+>

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

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