Метод close
Метод close класса Plugin применяется
к экземпляру плагина и вызывается Bottle при
удалении плагина из приложения. Метод не принимает
параметров и используется для освобождения ресурсов,
которые были открыты в методе setup, например
соединений с базой данных, файлов или сетевых сокетов.
Метод вызывается автоматически при вызове
app.uninstall или при завершении работы приложения.
Возвращаемое значение метода игнорируется.
Синтаксис
plugin.close()
Пример
Давайте создадим плагин, который открывает файл
в setup и закрывает его в close:
from bottle import Bottle, Plugin
class FilePlugin(Plugin):
name = 'file'
api = 2
def setup(self, app):
self.f = open('data.txt', 'w')
def apply(self, callback, route):
return callback
def close(self):
self.f.close()
app = Bottle()
app.install(FilePlugin())
app.uninstall('file')
Пример
Давайте проверим, что метод close действительно
вызывается при удалении плагина:
from bottle import Bottle, Plugin
class LogPlugin(Plugin):
name = 'log'
api = 2
def setup(self, app):
self.opened = True
def apply(self, callback, route):
return callback
def close(self):
self.opened = False
app = Bottle()
plugin = LogPlugin()
app.install(plugin)
print(plugin.opened)
app.uninstall('log')
print(plugin.opened)
Результат выполнения кода:
True
False