【问题标题】:Django. Using .ini files in code folder姜戈。使用代码文件夹中的 .ini 文件
【发布时间】:2018-02-27 13:12:15
【问题描述】:

我想要一个 .py 文件,使用 ConfigParser 类从 .ini 文件(包含第 3 方 REST 服务的 URL)中恢复信息 直到现在这工作,因为它正在查找文件,但现在它不是。应用结构是:

app
    folder
        file.py
        urls.ini

我认为这是由于我的静态文件设置,如下所示:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

这是因为我想为 Heroku 维护与本地开发和 Web 生产场景(我可能可以使用 Web 中的代码进行测试)兼容的设置。我想成功,所以我不必改变太多东西。

提前致谢。

【问题讨论】:

    标签: python django heroku settings


    【解决方案1】:

    如果你想读取一些文件,你必须得到路由。

    如果您的 Django 文件夹中有静态文件夹,则可以很容易地让您的 .ini 文件执行此操作

    ini = open("%s/folder/yourfile.ini" % BASE_DIR, "r")
    

    然后读取你的文件行。

    在我看来,使用 .py 文件进行配置比 .ini 文件更容易,您可以拥有许多文件并根据 settings.py 参数进行加载。

    编辑:用于使用 Django 配置文件变量

    from django.conf import settings
    BASE_DIR = settings.BASE_DIR
    

    【讨论】:

    • 但是我无法访问 BASE_DIR 因为这是 Django 提供的 settings.py 文件中的一个变量。这是我不应该访问的层次结构的顶层,我就像下面的 3 个级别。我的问题可能是Django部署时ini文件在哪里,我不知道
    • 我明白了,如果你想使用,你可以访问 Django 设置:from django.conf import settings 你也可以使用以下代码“复制”那个“BASE_DIR”变量:import osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))跨度>
    • 如果我在这里错了请道歉,但"__file__" 会使路径一直向下到我的 ini 文件,这是我不想要的,对吧?我想确保我处于最高水平。不过,关于使用“django.conf”的建议就像一个魅力,所以谢谢!我想将您的答案标记为正确,但是您可以添加为其他人导入设置的部分吗?如果你觉得没问题
    • 我要问:为什么要使用设置来查找设置?为什么不直接在 settings.py 中添加一个元组呢?这是第 3 方提供的 .ini 文件吗?
    • 因为直到现在我都不知道你可以只导入设置,我认为该文件仅用于 Django 配置内容,而不是用于存储您自己的内容。这个文件是我自己的。
    猜你喜欢
    • 2018-03-23
    • 2014-07-27
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多