我有一个即时生成的html文件,我不想保存到磁盘。通常在Django中,要将html提供给用户,请使用:
return render_to_response('foo.html', context_instance=RequestContext(request))
但是,我在磁盘上没有foo.html
,我有一个bytes
字符串。如何让Django呈现字符串而不是文件? (注意:生成的文件有{% block content %}
等等,Django需要解释。
使用python3.4和Django 1.8。
在cyphase的建议中:我做了以下事情:
my_template = Template(byte_string)
return HttpResponse(my_template.render(RequestContext(request)))
答案 0 :(得分:2)
试试这个:
from django.http import HttpResponse
from django.template import Template
def your_view(...):
# Do stuff
yourtemplate = Template(your_template_string)
content = yourtemplate.render(context_instance=RequestContext(request))
# content_type and status are the same as would be passed
# to render() or render_to_response().
return HttpResponse(content, content_type=None, status=None)
理想情况下,有人会实现一个render_to_response()
来获取字符串或类文件对象。