我的django应用程序必须从文件系统中读取一些文本文件。所以我在我的应用程序目录中创建了一个目录,并使用相对路径打开和读取文件。
areas = parseXmlFile('xml_files/area.xml')
当我使用manage.py runserver
运行服务器进行调试时,没关系。但是我使用manage.py runfcgi host=127.0.0.1 port=8081
运行服务器,Django找不到文件:No such file or directory: 'xml_files/area.xml'
我不想使用绝对路径,这意味着我需要修改很多代码。
如何解决使用相对路径打开本地文件的问题?
我建议您使用
absolute path
,但使用的方式要聪明一些。在你的settings.py
中声明类似于XMLFILES_FOLDER
的内容,并让你的settings.py
像这样:这是假设
xml_files
文件夹位于项目根文件夹下,如果不是,只声明从项目根文件夹到xml_files
的相对路径这样,只要在代码中想访问该目录中的文件,就可以执行以下操作:
这种方法可以在任何操作系统中使用,而且无论您更改项目的文件夹,它仍然可以使用。
希望这有帮助!
@保罗布的回答是正确的,但已经过时了。Modern day settings.py文件有一个BASE_DIR变量,您可以用于此努力。
请记住,相对路径来自Django项目的根文件夹。
@保罗布的回答是正确的,但已经过时了。Modern day settings.py文件有一个BASE_DIR变量,可以用于此努力。
请记住,相对路径来自Django项目的根文件夹。
相关问题 更多 >
编程相关推荐