Метод 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,
который освобождает ресурсы плагина