Цикл вызова html jinja не работает для вызова некоторых изображений в таблице HTML

#python #flask #jinja2

Вопрос:

Я хотел бы вызвать какое-нибудь изображение для отображения table.html из controller/static/foto папки

Когда я вызываю value foto с функцией python img_dir в HTML, используя for loop

info/views.py

 import controller import create app
import os

@info_blue.route('/img_dir')
def img_dir():
   app = create_app('dev')
   images = os.listdir('controller/static/foto')
   return render_template("table.html", foto=images)
 

table.html

 {% for row in value %}
<tr>
   <td>{{row[0]}}</td>
   <td>{{row[1]}}</td>
   <td>{{row[2]}}</td>
   <td>{{row[3]}}</td>
   <td>
      {% for image in foto %}
         <img src="{{ url_for('static', filename='controller/static/foto/'   image) }}">
      {% endfor %}
    </td>
{% endfor %}
</tr>
 

Кажется, это не работает , но когда я пытаюсь проверить содержимое папки print(images) , я проверяю, есть ли 3 фотографии

3 фотографии внутри папки из пути к папке controller/static/foto
1

Почему он все еще пуст?

Таблица в столбце фото, похоже, не показывает никаких фотографий 2

Примечание: в столбце «Фото» он содержит только переменную имени фотографии из базы данных, просто чтобы указать, была ли это правильная фотография, когда появилась фотография

Это путь к папке Это путь к папке

Попытался вызвать одно изображение из foto/

 {% for row in value %}
<tr>
   <td>{{row[0]}}</td>
   <td>{{row[1]}}</td>
   <td>{{row[2]}}</td>
   <td>{{row[3]}}</td>
   <td>
      {% for image in foto %}
         <img src="{{ url_for('static', filename='controller/static/foto/'   image) }}">
      {% endfor %}
    <img src="{{ url_for('static', filename='foto/18_Aug_2021|02:33.jpg'   image) }}">
    </td>
{% endfor %}
</tr>
 

Это работает, но только вне цикла изображений

Вызовите одно изображение внутри цикла строк, но вне цикла изображений 4

когда я попытался проверить URL-адрес, это результат, похоже, что изображение не вызывается ?

проверьте URL-адрес

 {% for image in foto %} 
<img src="{{ url_for('static', filename='foto/' image) }}"> 
{% endfor %} 
<img src="{{ url_for('static', filename='foto/18_Aug_2021|02:33.jpg' ) }}">
 

когда я это делаю, даже изображение » » делает это без пробела

URL-адрес для проверки второго изображения

скопируйте непосредственно в свой комментарий и получите jinja2.exception получил Jinja2.exception

непосредственно скопируйте исходный код

тест с переменной пути, без ошибок, но не работает

вы реализуете это вот так?

если его работа, в каждой строке должно быть по две картинки

новая проверка переменной пути

просто удалите {{ строка 4 }} эти пробелы должны быть из кода невыполнения

Ответ №1:

Пожалуйста, проверьте, правильный ли путь к файлу, который вы отправляете, или нет. Я думаю, что вы дважды вставили статический путь в путь к файлу.

 <img src="{{ url_for('static', filename='controller/static/foto/'   image) }}">
 

Здесь в имени файла параметра «контроллер/статический/» не должно быть, удалите его и попробуйте.

Я думаю, что это сработает.

Ответ №2:

Так это потому, что есть функция под названием таблица, которая возвращает table.html вот так, вот почему функция возврата из img_dir не работала

система, принимающая приоритет функции возврата

решение заключается в том, чтобы объединить их в одно целое, поэтому возврат сделает это вместе, как одно, и никто не возьмет на себя приоритет.

объединить код в один возврат

результат, который они назвали, но возникла другая проблема, я думаю, может занять новый билет

проблема решена, но она только начинается