我在 google app engine 上使用 flask,我急切地寻求帮助来解决这个问题。 GAE 文档谈到使用 BlobProperty 将图像存储在数据存储中,应该像这样完成:-
class MyPics(db.Model):
name=db.StringProperty()
pic=db.BlobProperty()
现在应该通过执行以下操作将图像存储在数据存储中:-
def storeimage():
pics=MyPics()
pics.name=request.form['name']
uploadedpic=request.files['file'] #where file is the fieldname in the form of the
file uploaded
pics.pic=db.Blob(uploadedpic)
pics.put()
redirect ... etc etc
但是我无法做到这一点。当我得到 db.Blob 接受一个 string ,但给定一个 Filestorage 对象时......有人可以帮我解决这个问题。另外,如果有人可以提示我如何在上传后流式传输图像。
最佳答案
好吧,这就是我最终解决它的方法:-
@userreg.route('/mypics',methods=['GET','POST'])
def mypics():
if request.method=='POST':
mydata=MyPics()
mydata.name=request.form['myname']
file=request.files['file']
filedata=file.read()
if file:
mydata.pic=db.Blob(filedata)
mydata.put()
return redirect(url_for('home'))
return render_template('mypicform.html')
以上将文件作为 blob 存储在数据存储中,然后可以通过以下函数检索它:-
@userreg.route('/pic/<name>')
def getpic(name):
qu=db.Query(MyPics).filter('name =',name).get()
if qu.pic is None:
return "hello"
else:
mimetype = 'image/png'
return current_app.response_class(qu.pic,mimetype=mimetype,direct_passthrough=False)
关于python - 使用 Flask (Python) 在谷歌数据存储中存储图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022974/