Django的。显示包含文本和png图像的页面

时间:2011-05-02 18:52:52

标签: django

我在django生成一个同时显示文本和.png图像的页面时遇到了麻烦。

在views.py中,下面的函数可以正常工作

    def image_test(request):
        image_file = open("C:\\temp\\test.png",'rb').read()
        return HttpResponse(image_file,mimetype='image/png')

现在如果我尝试创建将显示文本和图像的html(如下所示)

    def test(request):
        html = "<html><body> Hi there.\n\n"
        html += "<img src = \"C:\\temp\\test.png\" type =image/png /> \n"
        html += "</body></html> \n"
        return HttpResponse(html)

然后只显示文字。但是,如果我将生成的html保存到文件中,如下所示

    <html><body> Hi there.
    <img src = "C:\temp\test.png" type =image/png /> 
    </body></html> 

然后在浏览器中打开它,然后显示文本和png文件。

2 个答案:

答案 0 :(得分:2)

为什么你想要做任何这个?您不通过从磁盘读取图像文件并将它们传递给HttpResponse来提供图像文件 - 这是无稽之谈。您只在开发期间使用Web服务器或Django的static.serve来提供文件。您不会使用本地磁盘上的文件路径引用生成的HTML中的文件。并且您不通过连接字符串来创建HTML,而是使用Django的全功能模板语言。

答案 1 :(得分:1)

这不是真正的Django问题。当您从外部服务器打开网页时(即,不直接从您的硬盘驱动器,即使服务器在本地计算机上运行),您的浏览器也不允许它引用硬盘驱动器上的文件。

您需要更改图片网址,使其引用服务器上的网址,而不是硬盘上的网址。

了解serving static files in Djangousing templates