Python 如何使用flask在浏览器中显示存储在mongodb中的图像/pdf文件?
有人能帮我用flask应用程序在浏览器上显示mongodb中存储的图像或pdf文件吗?目前,当我尝试时,我得到200个响应,但浏览器只是空白。这是我使用的函数: 我的mongo文档建模如下:Python 如何使用flask在浏览器中显示存储在mongodb中的图像/pdf文件?,python,mongodb,flask,mongoengine,flask-restful,Python,Mongodb,Flask,Mongoengine,Flask Restful,有人能帮我用flask应用程序在浏览器上显示mongodb中存储的图像或pdf文件吗?目前,当我尝试时,我得到200个响应,但浏览器只是空白。这是我使用的函数: 我的mongo文档建模如下: class Users(db.Document): _id = db.StringField() name = db.StringField() picture = db.ReferenceField('fs.files') #holds the reference for the
class Users(db.Document):
_id = db.StringField()
name = db.StringField()
picture = db.ReferenceField('fs.files') #holds the reference for the file in the database
upload_picture = db.FileField() #used to load pics via flask into the database
email = db.StringField()
password = db.StringField()
meta = {'collection': 'Users'}
这是我必须检索和显示图像的函数。但是,使用此功能,我会得到一个空白浏览器:
class RetrievePicture(Resource):
def get(self, id):
try:
user = Users.objects(_id=id).first()
doc = user.picture.read()
return send_file(io.BytesIO(doc), mimetype='image/png')
except Users.DoesNotExist:
return 'Picture not found', 401
我输入浏览器的烧瓶路径应该返回我输入id的特定用户的图片。路线看起来像这样
http://127.0.0.1:5000/api/picture/(id)
是否有人知道我做错了什么,或者有其他使用MongoEngine的解决方案?似乎您需要。seek(0)
。以@Valijon为例,我得到了这个错误TypeError:需要一个类似字节的对象,而不是“文件”
。如何读取文件对象并返回图片?或者我应该问,我可以使用什么来将文件对象转换为可以显示的文件?谢谢