enter image description here我有一个数据库,该数据库将图像存储在其中一列中,它们存储为BLOB,这是我如何保存图像的方法:
with open("download.png", 'rb') as file:
data = file.read()
cursor.execute("INSERT INTO my_table VALUES (?,?,?,?,?,?) ", (value_list))
这是我如何检索它:
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经验)
答案 0 :(得分:0)
在这种情况下,显示添加到数据库中的信息以及在inspect元素中获得的路径将有助于更好地理解错误。确保正确通过路径。试试看:https://pynative.com/python-mysql-blob-insert-retrieve-file-image-as-a-blob-in-mysql/
您可以将图像保存在静态文件夹中,然后使用
从那里获取图像。
<img id="imgID" src="{{ url_for('static',filename=image_name) }}">
答案 1 :(得分:0)
问题在于读取值的方式:
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)