【发布时间】:2012-03-27 13:12:03
【问题描述】:
我想知道如何在运行时编辑金字塔注册表。好吧,我不太确定我必须编辑什么。
我知道我可以使用 config.include(...) 扩展金字塔。但是一旦 config.make_wsgi_app() 被调用,似乎没有办法添加路由或新的 mako 目录。对 threadlocals 或设置中的寄存器的任何更改都不会影响应用程序的行为。
我的目标是在运行时添加插件。这是一个用例。
有人安装我运行金字塔的应用服务器...然后安装一些插件
pip install page_plugin
然后在 /configs 中
有一个已安装插件的列表,您可以选择激活或不激活哪些插件。目前我只知道一种方法:
使用 entry_points 我可以看到我的插件,并且在金字塔的主要功能中,我可以注册插件。使用文件存储,我可以检查每个插件的状态:[安装、安装、卸载、卸载、禁用]
这样我可以从视图安装/卸载我的插件。
为了查看任何更改,我必须重新启动服务器。
状态 install :将在下次启动时安装 已安装:已安装并处于活动状态 卸载:将在下次启动时卸载 已卸载:已卸载 disabled:未卸载但未激活
安装/卸载用于在需要时设置数据库
我认为没有其他真正的方法可以做到这一点,因为没有“remove_view”。我可能会让服务器重新加载。它会加载新的配置。
[编辑]
没有删除路由或antyhing的功能。所以我的猜测是重新加载服务器可能是最容易和最简单的方法......并且重新启动服务器可能比忘记从插件中卸载一些东西更干净。
【问题讨论】: