У меня есть простое приложение Bottle, которое сохраняет свою конфигурацию в текстовом файле. Естественно, мне нужно, чтобы конфигурация была доступна почти во всех обработчиках приложения, и я хочу, чтобы она перезагружалась при каждом запросе.
В Flask я мог загрузить файл конфигурации в экземпляр ConfigParser
в before_request
и поместить ссылку на него в атрибут объекта g
, как описано в документации Flask как способ подключение SQLite . Объект g
будет доступен в каждом обработчике:
@app.before_request
def before_request():
g.config = load_config()
@app.route('/')
def index():
param = g.config.get(...)
...
В Bottle, с другой стороны, локальные потоки считаются плохой вещью, и предлагаемый способ хранения соединения с БД - это для написания плагина , который анализирует обработчики на наличие сигнатур, используя хитрые приемы. И хотя проблема для SQLite уже решена, это не относится к некоторым другим произвольным данным для каждого запроса.
Если честно, я не могу поверить, что должен написать 60 строк кода, чтобы выполнить такую простую задачу, поэтому, наверное, я что-то упустил.
Есть идеи?