我正在根据我在B itBucket repository找到的内容开发CherryPy应用程序。
在本例中,有两个配置文件,server.cfg(又名“global”)和app.cfg。
两个配置文件都加载在serve.py文件中:
# Update the global settings for the HTTP server and engine
cherrypy.config.update(os.path.join(self.conf_path, "server.cfg"))
# ...
# Our application
from webapp.app import Twiseless
webapp = Twiseless()
# Let's mount the application so that CherryPy can serve it
app = cherrypy.tree.mount(webapp, '/', os.path.join(self.conf_path, "app.cfg"))
现在,我想添加数据库配置。 我的第一个想法是将它添加到server.cfg中(这是最好的地方吗?还是它应该位于app.cfg中?)。
但是如果我在server.cfg中添加数据库配置,我不知道如何访问它。 使用:
cherrypy.request.app.config['Database']
仅当[Database]参数位于app.cfg中时才有效。
我尝试打印cherrypy.request.app.config,它只显示app.cfg中定义的值,server.cfg中没有。
所以我有两个相关的问题:
感谢您的帮助! :)
答案 0 :(得分:3)
将其放入应用配置中。一个很好的问题可以帮助您决定将这些内容放在哪里,“如果我在/blogs
在同一台服务器上安装了一个不相关的博客应用程序,我是否希望它能够共享该配置?”如果是这样,请将其放入服务器配置中。如果没有,请将其放入app config。
另请注意,全局配置未进行分区,因此无论如何都不能在[Database]
部分中添加cherrypy.config.get("database_port")
部分。只有app配置允许部分。如果你想在全局配置中坚持数据库设置,你必须考虑配置条目名称,如“database_port”。然后,您可以使用该名称直接访问它:{{1}}。