Класс AppStack
Класс AppStack используется в Bottle для организации стека
WSGI-приложений. Он позволяет динамически добавлять приложение
на вершину стека и снимать его. Это бывает нужно, например, при
тестировании, при монтировании подприложений или при подмене
основного приложения во время запроса.
У класса нет обязательных параметров при создании. Экземпляр
хранит внутренний список приложений, доступный через атрибут
stack. Если стек пуст, используется приложение по умолчанию,
хранящееся в атрибуте default_app.
Синтаксис
from bottle import AppStack
stack = AppStack()
stack.push(app)
stack.pop()
Пример
Давайте создадим стек приложений и добавим в него приложение
Bottle через метод push:
from bottle import Bottle, AppStack
app = Bottle()
@app.route('/')
def index():
return 'hello'
stack = AppStack()
stack.push(app)
res = stack.stack
Результат выполнения кода:
[<bottle.Bottle object at ...>]
Пример
Давайте снимем приложение со стека методом pop и получим
его обратно:
from bottle import Bottle, AppStack
app = Bottle()
stack = AppStack()
stack.push(app)
res = stack.pop()
<-python->
Результат выполнения кода:
<app object>
Пример
Давайте посмотрим, какое приложение используется по умолчанию, если стек пуст:
from bottle import AppStack
stack = AppStack()
res = stack.default_app
Результат выполнения кода:
<app object>