我有一个简单的 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 行代码来完成如此简单的任务,所以我想我一定是遗漏了一些东西。
有任何想法吗?