我们说我有一个Django项目myproj
,有一个应用myapp
。在myproj/myapp
中,有一个名为const.py
的文件,它包含在应用程序的视图文件中,并从文本文件中加载一些常量。此文本文件位于myproj/myapp/myfile.txt
。
在const.py
中,以下代码在Web服务器运行时正常工作:
with open('myapp/myfile.txt')
但是如果我移动到目录myproj/myapp
并从命令行运行python const.py
,我会收到一条错误消息,说它无法找到文件myapp/myfile.txt
。为了使其从命令行运行,我必须将const.py
更改为:
with open('myfile.txt')
但是,这对Web服务器不起作用。我理解为什么第一个版本不能从命令行工作。但我不明白为什么第一个版本在Web服务器运行时有效,而第二个版本没有。如果const.py
与myfile.txt
位于同一目录中,那么Web服务器肯定会搜索myfile.txt
的同一目录。为什么它找不到呢?为什么,当它搜索myapp/myfile.txt
时,它能找到一个与const.py
位于同一目录的文件吗?
谢谢!