使用编解码器返回HTML时视图中的Django FileNotFoundError

时间:2016-10-16 02:24:21

标签: python html django http web-deployment

我在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并尝试打开同一个文件时,它可以毫无障碍地工作。任何见解都会受到赞赏,因为我感到非常难过。

1 个答案:

答案 0 :(得分:0)

如果要从与view.py文件相同的目录中打开文件,请使用以下命令:

html = open(os.path.dirname(os.path.realpath(__file__)) + 'index.html', "r")