【问题标题】:How to get images stored in a database and display them on a HTML page using Flask?如何获取存储在数据库中的图像并使用 Flask 在 HTML 页面上显示它们?
【发布时间】:2020-05-07 08:49:52
【问题描述】:

我试过这样做,但图像没有出现在 HTML 页面上 这是一个烧瓶应用程序访问“图像”数据库,其中存储了具有唯一 ID 的图像 如何使用flask获取存储在数据库中的图像并在我正在渲染的html页面上显示图像

from flask_sqlalchemy import SQLAlchemy
from flask import *
from sqlalchemy import *
from sqlalchemy.orm import scoped_session, sessionmaker
from io import BytesIO
import base64
import image

#from sqlalchemy_imageattach.entity import Image, image_attachment


app = Flask(__name__)
app.secret_key = "manoj"
db = SQLAlchemy(app)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root@localhost/image'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)
class Images(db.Model):
    __tablename__ = "imgs"
    id = db.Column(db.Integer , primary_key = True , nullable=False)
    img = db.Column(db.LargeBinary)

@app.route('/')
def index():
    return render_template("parallax.html")

@app.route('/upload' , methods = ['POST'])
def upload():
    img  =  request.files['img_file']
    newfile = Images(img = img.read())
    db.session.add(newfile)
    db.session.commit()
    return "File Uploaded : " + img.filename

@app.route('/download')
def download():
    img = Images.query.filter_by(id = 1).first()
    newimg =  BytesIO(img.img) 
    img = image(newimg)
    return render_template("image.html" , data = img)

if __name__ == "__main__":
    app.run(debug = True)

【问题讨论】:

    标签: python flask sqlalchemy


    【解决方案1】:

    我知道这不是您要寻找的答案,但是将实际图像存储在磁盘上,并且仅从数据库中检索文件名或位置也可以。

    flask 可以很容易地返回这张图片

            return flask.redirect(flask.url_for('PATH', filename='YOURIMAGE.png'), code=301)
    

    我猜您有特定的理由将图像存储在数据库中,但也许这无论如何都会对您有所帮助。请注意,这不会返回嵌入图像的 html,而是仅返回图像。

    【讨论】:

    • 非常感谢我已经尝试过了,但这似乎不是一个好的选择,所以
    【解决方案2】:

    关键词:blob

    将您的图像转换为base64字符串blob,然后您可以将其作为文本字段存储在db中

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多