如何在django中打开文件
How to open file in django
我正在尝试从视图中打开与应用程序位于同一目录中的文件。
-app
--views.py
--about.txt
--...
我打开文件的代码是..
def home(request):
with open('about.txt','r') as f:
about = f
about = about.split('\n')
about = '<br/>'.join(about)
return render(request, 'app/home.html', {'about':about})
但我一直收到错误 `
FileNotFoundError at /
[Errno 2] No such file or directory: 'about.txt'
想了想,想放到静态目录下,还是报同样的错误
- 我对 django 还是个新手。
- Django 2.2.3
- Python 3.7.3
编辑:
我不知道这是否是原因...但是当按回车键换行时,它会在一个新的缩进上。
TL;DR
您必须在您的路径前添加类似 app
的内容才能创建 app/about.txt
。我没有足够的信息来告诉你确切的内容,但这里是如何找到的:
当您 运行 您的应用程序时,工作目录可能不在应用程序中。您可以使用 os.getcwd()
找出它 运行 所在的路径。例如:
import os
# ...
def home(request):
print(os.getcwd())
with open('about.txt','r') as f:
about = f
about = about.split('\n')
about = '<br/>'.join(about)
return render(request, 'app/home.html', {'about':about})
作为@KlausD。提到,你的路径是相对的。每当代码被运行时,它就是"working directory"中的运行。比如我在app
目录下运行python views.py
,那么当前工作目录(简称cwd
)就是app
。然后,当给出 relative path 时,比如 about.txt
(实际上意味着 ./about.txt
,其中 .
代表 cwd),它会在 cwd 中查找 about.txt
.
我正在尝试从视图中打开与应用程序位于同一目录中的文件。
-app
--views.py
--about.txt
--...
我打开文件的代码是..
def home(request):
with open('about.txt','r') as f:
about = f
about = about.split('\n')
about = '<br/>'.join(about)
return render(request, 'app/home.html', {'about':about})
但我一直收到错误 `
FileNotFoundError at /
[Errno 2] No such file or directory: 'about.txt'
想了想,想放到静态目录下,还是报同样的错误
- 我对 django 还是个新手。
- Django 2.2.3
- Python 3.7.3
编辑:
我不知道这是否是原因...但是当按回车键换行时,它会在一个新的缩进上。
TL;DR
您必须在您的路径前添加类似 app
的内容才能创建 app/about.txt
。我没有足够的信息来告诉你确切的内容,但这里是如何找到的:
当您 运行 您的应用程序时,工作目录可能不在应用程序中。您可以使用 os.getcwd()
找出它 运行 所在的路径。例如:
import os
# ...
def home(request):
print(os.getcwd())
with open('about.txt','r') as f:
about = f
about = about.split('\n')
about = '<br/>'.join(about)
return render(request, 'app/home.html', {'about':about})
作为@KlausD。提到,你的路径是相对的。每当代码被运行时,它就是"working directory"中的运行。比如我在app
目录下运行python views.py
,那么当前工作目录(简称cwd
)就是app
。然后,当给出 relative path 时,比如 about.txt
(实际上意味着 ./about.txt
,其中 .
代表 cwd),它会在 cwd 中查找 about.txt
.