python - 如何在页面上渲染 Flask-SQLAlchemy 中的图像?

标签 python flask flask-sqlalchemy

我正在尝试在我的网站上渲染图像,但它不起作用(我只看到损坏的文件图标)。你能告诉我我做错了什么吗?

我上传图片的方式:

@app.route('/UploadImages')
def UploadImages():
    return render_template('UploadImages.html')


@app.route('/uploadImages', methods=['POST'])
def uploadImages():
    name = current_user.USERNAME
    file = request.files['inputFile']
    newFile=IMAGES(
        NAME=file.filename,
        USERNAME=name,
        DATA=file.read()
    )
    db.session.add(newFile)
    db.session.commit()

    return 'Saved ' + file.filename + 'to the database !'

这是我的数据库表:

class IMAGES(db.Model):
    ID = db.Column(db.Integer,primary_key=True)
    NAME = db.Column(db.String(300),unique=True)
    DATA = db.Column(db.BLOB)
    USERNAME = db.Column(db.String(15))

我确信文件上传正确,因为当我使用时:

@app.route('/download')
def download():
    file_data = IMAGES.query.filter_by(USERNAME='test1').first()

    return send_file(BytesIO(file_data.DATA),
attachment_filename='test.jpg',as_attachment=True) 

我得到的图像没有损坏。

我如何尝试渲染文件:

@app.route('/image')
def image():
    file_data = IMAGES.query.filter_by(USERNAME='test1').first()
    image = b64encode(file_data.DATA)
    return render_template('Image.html',data=list,image=image)

在网站上:

<img src="data:;b64encode,{{ image }}"/>

最佳答案

<img>数据 URI 应为 data:;base64,{{ image }}而不是data:;b64encode,{{ image }} .

关于python - 如何在页面上渲染 Flask-SQLAlchemy 中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861182/

相关文章:

python - SQLALCHEMY:没有唯一约束与引用表的给定键匹配

postgresql - 从多对多 SQLAlchemy 和 Postgresql 中删除

python - 在集成测试 (Pytest) 和 Flask 应用程序之间创建不同的 SQLAlchemy session

python - 我可以更有效地拆分包含混合元组/无的列吗?

python - 将 Flask 模型导入可扩展架构中的 Python 控制台

python - 为什么我每次打开 cmd 都需要激活 conda 和我的 venv?这是正常的吗?

python-3.x - Flask属性错误: module object has no attribute 'app'

python - Sqlalchemy 覆盖关联表中的字段

python - Pandas:将函数应用于每个组并将结果存储在新列中

python - 如何用 kivy 中的图像填充 Canvas ?