Рендеринг HTML из поля БД в Django - PullRequest
0 голосов
/ 11 октября 2019

В моем проекте django у меня есть модель с полем, содержащим HTML-код в виде текста:

html_test = models.TextField()

, например, в этом поле может быть:

<html>
    <header><title>This is title</title></header>
    <body>
        Hello world
    </body>
</html>

Я хочуИзвлеките этот код и визуализируйте динамически, показывая соответствующую HTML-страницу, не создавая файл или сохраняя его на диске. Как я могу отобразить HTML-код в памяти для отображения страницы, а затем уничтожить его?

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Я все еще не уверен, каков твой вопрос. Вы извлекаете модель из базы данных и возвращаете данные пользователю, как и все остальное. Например, представление может выглядеть так:

def my_view(request, pk):
    obj = MyModel.objects.get(pk=pk)
    return HttpResponse(obj.html_test)
0 голосов
/ 11 октября 2019

Использование jinja2 в качестве шаблонизатора ,

class YourClassName(generic.TemplateView):
    template_name = 'your_template.jinja'

    def get_context_data(self, **kwargs):
        kwargs['html_data'] = MyModel.objects.get(pk=pk).html_test
        return super(YourClassName, self).get_context_data(**kwargs)

В вашем your_template.jinja

<html>
<header><title>This is title</title></header>
<body>
    {{html_data}}
</body>

...