Попытка отправить данные из python в html
Я собираю контент и пытаюсь отобразить его на html странице, но он ничего не отображает, когда я пытаюсь запустить цикл jinja для словаря, который я послал из файла python, он запускает каждую переменную отдельно, но не запускает цикл для словаря
Словарь Python, который я пытаюсь отобразить
dictionary = dict(
[('page_title', url), ('title', title), ('anchor', anchor),
('images', images)])
Html код с тегами jinja
<div id="dictionary">
{% for items in dictionary %}
<div class="card" style="width: 18rem;">
<img src="{{ items.images }}" class="card-img-top" alt="{{ items.title }}">
<div class="card-body">
<a href="{{ items.anchor }}" class="btn btn-primary"><h5 class="card-title">{{ items.title }}</h5></a>
</div>
</div>
{% endfor %}
Не требуется никакого цикла for. Напрямую, вы можете использовать dictionary data
<div class="card" style="width: 18rem;">
<img src="{{ dictionary.images }}" class="card-img-top" alt="{{ dictionary.title }}">
<div class="card-body">
<a href="{{ dictionary.anchor }}" class="btn btn-primary"><h5 class="card-title">{{ dictionary.title }}</h5></a>
</div>
</div>
Вы можете создать пользовательский тег шаблона следующим образом:
templatetags/tags.py
from django.template.defaulttags import register
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
your_html.html:
<div id="dictionary">
<div class="card" style="width: 18rem;">
<img src="{{ dictionary|get_item:'images' }}" class="card-img-top" alt="{{ dictionary|get_item:'title' }}">
<div class="card-body">
<a href="{{ dictionary|get_item:'anchor' }}" class="btn btn-primary"><h5 class="card-title">{{ dictionary|get_item:'title' }}</h5></a>
</div>
</div>