Метод close
Метод close принадлежит классу JSONPlugin и применяется
к экземпляру плагина. Он вызывается фреймворком Bottle
автоматически при остановке приложения и предназначен
для освобождения ресурсов, выделенных во время работы
плагина. Метод не принимает параметров и не возвращает
значения. По умолчанию реализация метода пуста, поэтому
переопределять его следует только при необходимости
выполнить завершающие действия, например закрыть
соединение с базой данных или сохранить кеш.
Синтаксис
plugin.close()
Пример
Давайте создадим подкласс JSONPlugin и переопределим
метод close, чтобы вывести сообщение о завершении работы:
from bottle import Bottle, JSONPlugin
class MyJSONPlugin(JSONPlugin):
def close(self):
print('JSONPlugin closed')
app = Bottle()
app.install(MyJSONPlugin())
@app.route('/')
def index():
return {'message': 'hello'}
app.run(host='localhost', port=8080)
Результат выполнения кода после остановки сервера:
"JSONPlugin closed"
Пример
Давайте в методе close освободим внешний ресурс,
например закроем файл, открытый при инициализации плагина:
from bottle import Bottle, JSONPlugin
class FileJSONPlugin(JSONPlugin):
def setup(self, app):
super().setup(app)
self.file = open('log.txt', 'w')
def close(self):
self.file.close()
print('file closed')
app = Bottle()
app.install(FileJSONPlugin())
@app.route('/')
def index():
return {'status': 'ok'}
app.run(host='localhost', port=8080)
Результат выполнения кода после остановки сервера:
"file closed"
Смотрите также
-
класс
JSONPlugin,
который сериализует ответы в формат JSON -
метод
setup,
который вызывается при установке плагина -
метод
apply,
который обрабатывает результат маршрута -
класс
Plugin,
который является базовым классом для всех плагинов