我在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文件。
答案 0 :(得分:2)
为什么你想要做任何这个?您不通过从磁盘读取图像文件并将它们传递给HttpResponse来提供图像文件 - 这是无稽之谈。您只在开发期间使用Web服务器或Django的static.serve
来提供文件。您不会使用本地磁盘上的文件路径引用生成的HTML中的文件。并且您不通过连接字符串来创建HTML,而是使用Django的全功能模板语言。
答案 1 :(得分:1)
这不是真正的Django问题。当您从外部服务器打开网页时(即,不直接从您的硬盘驱动器,即使服务器在本地计算机上运行),您的浏览器也不允许它引用硬盘驱动器上的文件。
您需要更改图片网址,使其引用服务器上的网址,而不是硬盘上的网址。