python - 使用 Flask (Python) 在谷歌数据存储中存储图像

标签 python image google-app-engine flask

我在 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/

相关文章:

python - 为什么 gensim Doc2Vec 为同一个句子提供不同的向量?

python - 如何停止等待客户端.connect() 的线程?

java - Google Cloud Java 客户端库未通过 gradle 编译

python - 如何找到每个客户的相似地址数量?

python - 在此 numpy 分配中尾随逗号的效果是什么?

java - 在 Java 邮件中嵌入图像 - CID 不工作

html - 无法制作 2x2 图像网格 [CSS]

image - 带有 SSL 的 Xamarin.Forms Image.Source

java - JSP 文件之间共享数据?

ruby-on-rails - 如何使 Google App Engine 上的 Rails 应用程序重定向到 HTTPS