我怎样才能获得金字塔中的ini数据?

时间:2012-06-05 07:59:03

标签: pyramid ini

金字塔项目中有development.ini或production.ini。我添加自己的配置数据 ini文件如:

[thrift]
host = 0.0.0.0
port = 8080

我想在项目中的一个py文件中使用配置数据。 如何在没有请求对象的情况下获取数据? (我见过一个使用请求的解决方案。)

3 个答案:

答案 0 :(得分:23)

您可以访问request.registry.settingspyramid.threadlocal.get_current_registry().settings的设置。它的行为就像字典一样。

如果你想使用第二个,即在没有请求的情况下获取设置,我必须警告你。根据{{​​3}}:

  

这项功能应该非常谨慎地使用,通常只在单位使用   测试代码。使用它几乎总是一个错误   get_current_registry在测试上下文之外,因为它的用法   有可能编写既不容易测试也不容易测试的代码   脚本。

您的代码中需要访问设置的任何部分都是Web应用程序的一部分,应该访问请求,而不是一些神奇可访问的全局。你可能认为你有充分的理由,但可能有更好的方法。如果你想讨论这个问题(也许在另一个问题中,如果它很复杂,因为有些代码会有帮助),我很乐意帮助你找到一个干净的方法来做到这一点。

答案 1 :(得分:2)

每当我想知道如何在金字塔中做某事时,我通常会参考github上的一个金字塔示例。

Parsing Example Pyramid Config

我不知道他们是多么“疯子”,但他们的工作正常。就像在任何python项目中一样使用ConfigParser来解析你的.ini文件

答案 2 :(得分:-2)

想想'python'而不是'金字塔'。

import ConfigParser

config = ConfigParser.ConfigParser()
config.read('development.ini')
db_url = config.get('app:main', 'sqlalchemy.url')