gpt4 book ai didi

python - 在 flask/jinja2 中编码二进制数据

转载 作者:太空狗 更新时间:2023-10-30 03:01:16 24 4
gpt4 key购买 nike

您好,我正在使用 flask、jinja2、sqlalchemy 等在 python 中开发小型应用程序...我正在我的数据库中保存二进制数据:

file = request.files['file']
# store the recipe
recipe = Recipe(None, session['user_in'], request.form['title'], request.form['text'],request.form['tags'], file.read())
db.session.commit()

我想在我的应用程序中显示该条目:

@app.route('/recipe/<id>', methods=['GET', 'POST'])
def show_entry(id):
return render_template('show_entry.html', entry=db_session.query(Recipe).get(id))

在我的模板中我有:

<img src="data:image/png;base64,{{ entry.image }}"/>

但是我有unicode错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 0: ordinal not in range(128)

你能帮我解决这个问题吗?

最佳答案

data:image/png;base64, 说PNG数据是base64编码的,所以我认为你需要在渲染模板之前对图像数据进行base64编码。如果这样做,编码错误应该会消失。像这样的东西应该可以解决问题:

@app.route('/recipe/<id>', methods=['GET', 'POST'])
def show_entry(id):
entry = db_session.query(Recipe).get(id)
entry.image = entry.image.encode('base64')
return render_template('show_entry.html', entry=entry)

我不太熟悉这个,它可能是一个字典查找?,即

entry['image'] = entry['image'].encode('base64')

关于python - 在 flask/jinja2 中编码二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com