Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-手动构建HttpResponse,但也希望使用模板_Python_Django_Django Templates - Fatal编程技术网

Python Django-手动构建HttpResponse,但也希望使用模板

Python Django-手动构建HttpResponse,但也希望使用模板,python,django,django-templates,Python,Django,Django Templates,当使用render_to_response返回HttpResponse对象时,您可以提供一个模板,它将使用该模板并填写您在模板中设置的所有{variables} 如果我想手动构建我的HttpResponse对象,是否仍可以使用我的模板目录中的一个模板?使用,您将获得渲染字符串。您可以将返回的字符串传递给HttpResponse from django.template.loader import render_to_string ... rendered = render_to_string

当使用
render_to_response
返回
HttpResponse
对象时,您可以提供一个模板,它将使用该模板并填写您在模板中设置的所有
{variables}

如果我想手动构建我的
HttpResponse
对象,是否仍可以使用我的模板目录中的一个模板?

使用,您将获得渲染字符串。您可以将返回的字符串传递给
HttpResponse

from django.template.loader import render_to_string

...

rendered = render_to_string('my_template.html', {'foo': 'bar'})
response = HttpResponse(rendered)

是-您可以使用Django将模板作为
模板
对象加载,然后加载到字符串,并将其传递给
HttpResponse

from django.template import Template, Context
from django.template.loader import get_template

def my_view(request):
    temp = get_template('/path/to/template.html')
    result = temp.render(Context({'context': 'here'})
    return HttpResponse(result)
编辑


刚刚注意到上面@falsetru的答案——这可能是一个更好、更短的方法

是的,就是这样。谢谢在发布了这个问题之后(就像经常发生的那样),我发现了你实现我想要的东西的方法,当我回到我的问题时,我正在测试它。您的方法非常有效,但正如您所说,@falsetru显示了一种稍微优雅的方法。