Flask передать изображение из sqlite blob в шаблон - PullRequest
0 голосов
/ 07 мая 2020

введите здесь описание изображения У меня есть база данных, в которой изображения хранятся в одном из столбцов, они хранятся как BLOB, вот как я его сохраняю:

with open("download.png", 'rb') as file:
    data = file.read()

cursor.execute("INSERT INTO my_table VALUES (?,?,?,?,?,?) ", (value_list))

this вот как я его получаю:

cursor.execute("SELECT * FROM my_table")
my_list = cursor.fetchall()
DDBB.close()

вот как я его передаю:

@app.route('/')
def index():
    posts = get_posts()

    return render_template("index.html", my_list=posts)

вот для чего я его использую:

{% for item in my_list %}
<div class="col-4 text-center mt-5">
    <div class="card" style="width: 18rem;">
        <img src="data:image/png;base64,{{ item[0] }}" id="imgslot" class="card-img-top">
        <div class="card-body">
            <p class="mb-1">Name: {{ item[2] }}</p>
            <p class="mb-1">Location: {{ item[1] }}</p>
            <p class="mb-2">{{ item[3] }}</p>
            <p class="mb-2">Posted by: {{ item[4] }}</p>
            <a href="#" class="btn btn-dark">Go somewhere</a>
        </div>
    </div>
</div> 
{% endfor %}

карта читает все правильно, но изображение не загружается, использование проверки chrome кажется, что значение передается неправильно.

Может ли кто-нибудь помочь мне лучше понять это (я новичок в flask и нет html опыта)

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

проблема заключалась в чтении значений:

for y in range(len(my_list)):
        rec_data=my_list[y][0]

        with open('static/img/post/img'+str(y)+'.jpg','wb') as f:
            f.write(rec_data)
0 голосов
/ 07 мая 2020

В этом случае отображение информации, добавленной в базу данных, и пути, полученного в элементе inspect, поможет лучше понять ошибку. Убедитесь, что вы правильно проезжаете путь. Попробуйте это: https://pynative.com/python-mysql-blob-insert-retrieve-file-image-as-a-blob-in-mysql/

Вы можете сохранить изображения в папке stati c, а затем получить их оттуда, используя

<img id="imgID" src="{{ url_for('static',filename=image_name) }}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...