如何在Django中将文件对象传递给模板

时间:2012-01-11 06:54:06

标签: django file django-templates django-views

我正在 myView &中读取文件将其传递给 myTemplate

MyView的

fp = open('D:/python1/format.pdf', 'rb')        
data = fp.read()             

response = HttpResponse(data, mimetype="application/pdf")
template = get_template('myTemplate.html')

variables = RequestContext(request, {'file':response})
output = template.render(variables)                
return HttpResponse(output)

MyTemplate的

<object id="pdf" height="100%" width="100%" type="application/pdf" data="{{file}}">

检查这个link。他们对csv文件做了类似的事情

注意
我已经在zope中成功完成了一个图像文件(使用python处理程序读取文件和Dtml将原始图像数据放在'src'中)。请检查此link

我知道Django shouldn't serve static files。这是一个特例。

1 个答案:

答案 0 :(得分:1)

您可以将文件的数据作为字符串传递给模板

fp = open('D:/python1/format.pdf', 'rb')        
data = fp.read()
variables = RequestContext(request, {'file': data})
output = template.render(variables)                
return HttpResponse(output)

或者您可以使用网络服务器提供服务。

我认为你不能做别的事情。 : - )