#python #mysql #flask
#python #mysql #flask
Вопрос:
Как я могу отображать изображения в шаблоне Flask, адреса которых хранятся в MySQL? Я пытаюсь передать данные из столбца ‘filename’ в шаблон, но изображения не отображаются.
Как я могу решить эту проблему? Заранее спасибо!
Код Flask:
@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>
Ответ №1:
Вы должны знать, где вы сохранили изображения, которые затем используете:
send_from_directory
который может быть импортирован из flask с параметрами
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, а также от характера и масштаба вашего приложения.
Комментарии:
1. Будет ли это работать с каталогом изображений, хранящихся в MySQL?