Показать изображение из MySQL в шаблоне Flask

Как я могу отображать изображения в шаблоне Flask, адреса которого хранятся в MySQL? Я пытаюсь передать данные из столбца «имя файла» в шаблон, но изображения не отображаются.

Как я могу решить эту проблему? Заранее спасибо!

Код фляги:

@app.route('/')
def index():
    # Create cursor
    cur = mysql.connection.cursor()

    # Get articles
    result = cur.execute("SELECT * FROM articles")

    articles = cur.fetchall()

    if result > 0:
        return render_template('home.html', articles=articles)
    else:
        msg = 'No articles Found'
        return render_template('home.html', msg=msg)
    # Close connection
    cur.close()
    return render_template('home.html')

Шаблон:

  <div>
    <h1 id=projetos>Projetos</h1>
    <ul class = "list-group">
      {% for article in articles %}
        <li class = "list-group-item"><a href = "article/{{article.id}}">{{article.title}}</a></li>
        <img src = {{article.filename}}>
      {% endfor %}
    </ul>
  </div>
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
321
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны знать, где вы сохранили изображения, а затем используете:

send_from_directory

который можно импортировать из колбы с параметрами

send_from_directory(folder_name, imagefilename)

который может быть обернут в функцию как

@app.route('/file/<filename>')
def get_image(filename):
    return send_from_directory(folder_name, filename)

Вы используете его в шаблонах как:

<img href = "{{url_for('get_image', filename='image.jpg')}}"> 

Если вы хотите, чтобы пакет обрабатывал активы, я рекомендую flask-reuploaded, который является преемником flask-uploads.

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

Будет ли он работать с каталогом изображений, хранящихся в MySQL?

user9113784 20.09.2021 10:28

Другие вопросы по теме