【问题标题】:Read configuration file in Django views.py在 Django views.py 中读取配置文件
【发布时间】:2017-08-09 03:55:25
【问题描述】:

我的问题很简单:如何从 Django 项目中的 views.py 中读取任何 .txt 或 .ini 文件?

我需要从设置中获取一个简单的参数(例如 4)。我将setting.iniviews.py(在应用程序文件夹中)放在一个目录中。以前的答案似乎没有任何效果:

在views.py中: filename = os.path.join(os.path.dirname(__file__), 'setting.ini')

返回 FileNotFoundError,指出正确的位置,但无法读取:
[Errno 2] 没有这样的文件或目录:'C:\\Users\\user\\Desktop\\XXXX\\XX \\XXXX\\XXXX\\setting.ini'

settings.py 中设置 PROJECT_ROOT 也无济于事。当我将setting.inisettings.py 放在一个文件夹中并尝试 import os from django.conf.settings import PROJECT_ROOT file_ = open(os.path.join(PROJECT_ROOT, 'filename'))

FileNotFoundError 也是如此。

当前应用文件夹内容:
migrations/
static/
templates/
__init__
admin.py
models.py
setting.ini
tests.py
views.py

【问题讨论】:

  • 您的设置文件与views.py 位于同一目录中,那么您为什么要使用path.join。只需使用文件名打开文件就可以了'
  • 我使用:with open('setting.ini', 'r') as f: 仍然是 FileNotFoundError。即使 setting.ini 和 views.py 在同一个文件夹中
  • 尝试构建访问文件的绝对路径并检查您构建的路径是否正确。
  • 即使显示错误,路径也绝对正确:没有这样的文件或目录
  • yourapp/setting.ini.setting.ini 怎么样,有用吗?

标签: django python-3.x django-views


【解决方案1】:

views.py 中,您在同一目录中有setting.ini 文件。

filename = os.path.join(os.path.dirname(__file__), 'setting.ini')
print('My settings', open(filename).readlines())

【讨论】:

  • 仍然是 FileNotFoundError
  • 然后仔细检查文件名和位置。也许settings.ini
  • 它是setting.ini。我在我的问题中添加了完整的文件夹内容。
猜你喜欢
  • 1970-01-01
  • 2018-12-12
  • 2011-09-24
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
相关资源
最近更新 更多