我在Django中创建一个返回静态HTML页面的视图,该视图的代码如下:
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import render_to_response
import codecs
# Basic HTTP response that returns my html index
# To call this view, map it to a URLconf
def index(request):
# When a request is called, return my index.html
html = codecs.open("index.html", "r")
return HttpResponse(html.read())
当我启动Django开发时。服务器并导航到我的应用程序,而不是我期望的index.html
呈现,我遇到了FileNotFoundError at /myapp/
以及[Errno 2] No such file or directory: 'index.html'
。我知道index.html
是与views.py
在同一目录中的真实文件的事实,我也尝试通过在同一目录中打开debug.txt
并返回它来调试,但是结果相同。当我在同一目录中打开python shell并尝试打开同一个文件时,它可以毫无障碍地工作。任何见解都会受到赞赏,因为我感到非常难过。
答案 0 :(得分:0)
如果要从与view.py文件相同的目录中打开文件,请使用以下命令:
html = open(os.path.dirname(os.path.realpath(__file__)) + 'index.html', "r")