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

Метод apply

Метод apply применяется к экземпляру класса JSONPlugin. Плагин автоматически подключается к приложению и вызывает этот метод для каждого маршрута, который возвращает словарь или список. Первым параметром передаётся функция-обработчик, вторым - маршрут, а третьим - словарь аргументов, извлечённых из URL. Метод возвращает новую функцию-обёртку, которая сериализует результат обработчика в JSON и устанавливает заголовок Content-Type: application/json.

Синтаксис

plugin.apply(callback, route, args)

Пример

Давайте подключим плагин JSONPlugin к приложению и повесим обработчик, возвращающий словарь:

from bottle import Bottle, JSONPlugin app = Bottle() app.install(JSONPlugin()) @app.route('/') def index(): return {'name': 'abcde', 'age': 25}

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

{"name": "abcde", "age": 25}

Пример

Давайте вернём из обработчика список и посмотрим, как плагин его сериализует:

from bottle import Bottle, JSONPlugin app = Bottle() app.install(JSONPlugin()) @app.route('/items') def items(): return ['article', 'user', 'hello']

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

["article", "user", "hello"]

Пример

Давайте применим метод apply вручную к собственной функции-обработчику:

from bottle import Bottle, JSONPlugin app = Bottle() plugin = JSONPlugin() def handler(): return {'status': 'abcde'} wrapped = plugin.apply(handler, '/', {}) @app.route('/') def index(): return wrapped()

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

{"status": "abcde"}

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

  • класс JSONPlugin,
    который автоматически сериализует ответы в JSON
  • метод apply,
    который является базовым для всех плагинов Bottle
  • метод setup,
    который настраивает плагин при установке
  • метод close,
    который освобождает ресурсы плагина
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить