如何在 HttpResponse 中编写 Django 模板标签 {% %}

How to write Django templates tags {% %} in HttpResponse

我不知道如何解决这个问题...

template tags image

def generate_some_svg_data():
    return '{% block content %}<svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg>{% endblock %}'

def my_view(request):
    svg_data = generate_some_svg_data()
    return HttpResponse(svg_data)

你需要告诉 django svg_data 是一个 Django 模板来解释标签:

from django.template import RequestContext, Template

def generate_some_svg_data():
    return '{% block content %}<svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg>{% endblock %}'

def my_view(request):
    svg_data = generate_some_svg_data()
    template = Template(svg_data)
    return HttpResponse(template)

如果您也有上下文,您可以执行以下操作:

def my_view(request):
    context = RequestContext(request, {"a":1, "b":2})
    svg_data = generate_some_svg_data()
    template = Template(svg_data)
    return HttpResponse(template.render(context))