В настоящее время я делаю проект flask
, в котором я хочу отобразить четыре Bootstrap
столбца в строке. Чтобы сделать это, я подумал, что я мог бы просто сделать так:
my_list = ["a","b","c","d","e","f","g","h","i","k",
"l","m","n","o","p","q","r","s","t","u",
"v","w","x","y","z"]
for i in range(len(my_list)):
for i in my_list[:4]:
print(i)
my_list.remove(i)
# returns every element of my_list in order
Однако, когда я попытался сделать это в реальном проекте, я получил ошибку, независимо от того, куда я положил
{% number_of_texts.remove [j]%}: "jinja2.exceptions.TemplateSyntaxError : Обнаружен неизвестный тег 'number_of_texts'. Джинджа искал следующие теги: 'endfor' или 'else'. Самый внутренний блок, который нужно закрыть, это 'for'. "
Это мои переменные из main.py:
@app.route('/texts')
def texts():
number_of_texts = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
return render_template('texts.html', title="All texts", number_of_texts=number_of_texts, len=len(number_of_texts))
Это мой код из text.py:
{% for i in range(len) %}
<div class="row">
{% for j in number_of_texts[:4] %}
<div class="col m-1">
<div class="card" style="width: 15rem; height: 28rem; border-radius: 25px 25px 0px 0px">
<img src="static\img\p_01.jpg" class="card-img-top" alt="..." style="object-fit: cover; border-radius: 25px 25px 0px 0px">
<div class="card-body">
<h5 class="card-title">row: {{ i }}</h5>
<p class="card-text">column: {{ j }}</p>
<a href="{{ url_for('specific_text', text_no=1) }}" class="btn btn-dark">Button</a>
</div>
</div>
</div>
{% endfor %}{% number_of_texts.remove[j] %}
</div>
{% endfor %}
Если я не удаляю j
из списка number_of_texts
, то кроме получения слишком большого количества столбцов, конечно, я получаю макет, который мне действительно нужен. Вот как это выглядит: https://imgur.com/a/t6tIic4
Есть ли другой способ удалить эти элементы из list
, чтобы я отображал каждый элемент в списке только один раз?
С уважением