您好,我正在使用flask,jinja2,sqlalchemy等工具在python中开发小型应用程序...我正在将binare数据保存在数据库中:
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')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句