Как я могу расширить '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