Как я могу расширить 'base.html' в коде Django Python?

Я хочу динамически генерировать страницу, используя базовый шаблон

Не работает так, как должно -

def index(request):
    return HttpResponse("{% extends 'base.html' %} {% block content %} Hello {% endblock %}")

на html его -

{% extends 'base.html' %} {% block content %}

Hello

{% endblock %}

как я могу расширить 'base.html' в коде Django Python? работает ли это только в html?

теги, которые вы хотите использовать, являются специфическими тегами django, которые должны быть преобразованы рендерером django. Поместите html в файл шаблона и отобразите его как ответ:

def index(request):

   ....

 return render(request, "path/your_template.html", context)

пожалуйста, следуйте документации django, чтобы понять, где разместить шаблоны, чтобы django нашел их.

вы можете использовать render:

views.py

from django.shortcuts import render

def index(request):
context = {'foo': 'bar'}
    return render(request,'yourapp_name/your_html.html',context)

your_html.html

{% extends 'yourapp_name/base.html' %} 

{% block content %}

Hello

{% endblock %}

помните, что ваши html-файлы должны иметь такой путь: yourapp_name/templates/yourapp_name/your_html.html

Вернуться на верх