python - Pyramid :如何避免将完整路径放入我的 __init__.py

标签 python path pyramid

我需要在我的主函数中拉取一个配置文件:

def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """ 

    parser = SafeConfigParser()
    ret = parser.read('/var/www/finance/corefinance/database.ini')
    connstring = parser.get('postgres', 'connstring')
    settings['sqlalchemy.url'] = connstring

database.ini 的位置比 init.py 的位置高一级

我以为我可以只使用“../database.ini”,但那行不通。唯一可行的是把整个路径。如何避免在此文件中输入完整路径?

最佳答案

当然,在您的 __init__.py 中,您可以使用项目父目录的字符串表示来定义一个变量:

project_dir = '/var/www/finance/corefinance/'

但我确定您不会通过 SO 获得这样的答案。


另一种方法是在 [app:main] 中添加类似于以下行的内容development.iniproduction.ini 的一部分:

project_dir = %(here)s/mycoolwebsite

或者甚至只是:

project_dir = %(here)s

然后在您的 __init__.py(以及您想要引用项目父目录的任何其他地方)中,您可以通过以下方式检索该值:

project_dir = config.registry.settings['project_dir']

有关自定义变量的更多信息,请参阅:http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html#adding-a-custom-setting

关于python - Pyramid :如何避免将完整路径放入我的 __init__.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143843/

相关文章:

python - Pyramid 中的强制身份验证

python - 将模块导入 Jupyter

python - django admin 自定义模型管理 url

java - 在java代码中将Windows风格的路径转换为unix路径

java - 在 mac 上通过 Eclipse 使用 tess4j、ghostscript 和 Java

动态文件的 Pyramid FileResponse

python - python 中的多重处理 - 通过添加结果来节省内存

python - 如何从 InlineFormset 中的图像字段获取图像 URL?

path - CMake 找不到 python3

Python:属性错误:_dep_map