python如何保存图像_Python应用引擎:如何保存图像?
An App Engine application cannot:
write to the filesystem. Applications must use the App Engine
datastore for storing persistent data.
您需要做的是向用户呈现带有文件上载字段的表单.
提交表单后,文件将上载,Blobstore将从文件内容中创建一个blob,并返回一个blob键,可用于稍后检索和提供blob.
允许的最大对象大小为2千兆字节.
这是一个可以尝试的工作代码段:
#!/usr/bin/env python
#
import os
import urllib
from google.appengine.ext import blobstore
from google.appengine.ext import webapp
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
class MainHandler(webapp.RequestHandler):
def get(self):
upload_url = blobstore.create_upload_url('/upload')
self.response.out.write('
')
self.response.out.write('
' % upload_url)
self.response.out.write("""Upload File:
name="submit" value="Submit">
""")
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file')
blob_info = upload_files[0]
self.redirect('/serve/%s' % blob_info.key())
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, resource):
resource = str(urllib.unquote(resource))
blob_info = blobstore.BlobInfo.get(resource)
self.send_blob(blob_info)
def main():
application = webapp.WSGIApplication(
[('/', MainHandler),
('/upload', UploadHandler),
('/serve/([^/]+)?', ServeHandler),
], debug=True)
run_wsgi_app(application)
if __name__ == '__main__':
main()
EDIT1:
在您的特定情况下,您可以使用BlobProperty(限制为1MB)来存储您的请求:
class Photo(db.Model):
imageblob = db.BlobProperty()
然后调整你的webapp.RequestHandler来保存你的请求:
class Upload(webapp.RequestHandler):
def post(self):
image = self.request.get("Filedata")
photo = Photo()
photo.imageblob = db.Blob(image)
photo.put()
EDIT2:
您无需更改app.yaml,只需添加新的处理程序并将其映射到WSGI中即可.
要检索存储的照片,您应该添加另一个处理程序来为照片提供服务:
class DownloadImage(webapp.RequestHandler):
def get(self):
photo= db.get(self.request.get("photo_id"))
if photo:
self.response.headers['Content-Type'] = "image/jpeg"
self.response.out.write(photo.imageblob)
else:
self.response.out.write("Image not available")
然后映射你的新DownloadImage类:
application = webapp.WSGIApplication([
...
('/i', DownloadImage),
...
], debug=True)
您可以使用以下网址获取图片:
yourapp/i?photo_id = photo_key
根据要求,如果出于任何奇怪的原因,您真的想使用这种网址www.mysite.com/i/photo_key.jpg来提供图像,您可能想尝试这样做:
class Download(webapp.RequestHandler):
def get(self, photo_id):
photo= db.get(db.Key(photo_id))
if photo:
self.response.headers['Content-Type'] = "image/jpeg"
self.response.out.write(photo.imageblob)
else:
self.response.out.write("Image not available")
略有不同的映射:
application = webapp.WSGIApplication([
...
('/i/(\d+)\.jpg', DownloadImage),
...
], debug=True)
python如何保存图像_Python应用引擎:如何保存图像?相关推荐
- python怎么保存源代码_python程序如何进行保存
保存Python程序,可以使用以下方法:使用编辑器编写代码并保存 1.打开Notepad++ 2.需要新建文本时,点击左上角"文本",在弹出的菜单栏点击"新建" ...
- python image库保存图片_python PIL 打开\显示\保存图像
使用python进行数字图片处理,还得安装Pillow包.虽然python里面自带一个PIL(python images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由 ...
- python归档excel数据_python怎么把数据保存为excel
在python中把数据保存为excel的方法:首先下载xlwt:然后使用[win R]快捷键打开cmd,切换目录到下载的文件地址并输入[python setup.py install]:再调用xlwt ...
- python保存表格_python怎么把数据保存为excel
在python中把数据保存为excel的方法:首先下载xlwt:然后使用[win+R]快捷键打开cmd,切换目录到下载的文件地址并输入[python setup.py install]:再调用xlwt ...
- python如何保存列表_python中数据的保存
1.将list中的数据写入到excel文件中 利用python包numpy(实现方式应该有许多种,这里只是记录成功实现的一种)中的savetxt 局限性:要保存的list可以为[1,2,3,4,5]这 ...
- python画xy轴_python画双y轴图像的示例代码
很多时候可能需要在一个图中画出多条函数图像,但是可能y轴的物理含义不一样,或是数值范围相差较大,此时就需要双y轴. matplotlib和seaborn都可以画双y轴图像. 一个例子: import ...
- python 下载视频文件_python 实现视频流下载保存MP4的方法
如下所示: # -*- coding:utf-8 -*- import sys import os from glob import glob import requests reload(sys) ...
- python获取cookie文件_Python Cookie 读取和保存方法
如下所示: #保存 cookie 到变量 import urllib.request import http.cookiejar cookie = http.cookiejar.CookieJar() ...
- python numpy读取数据_Python numpy数据的保存和读取
原博文 2019-04-01 16:30 − 在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 Matlab 中我们可以用 save 和 lood 函数很方便的实现 ...
最新文章
- 指定服务器无效,安装sqlserver2008r2 服务器配置,服务帐户配置出错,提示Sql server服务指定的凭据无效...
- Android状态栏颜色修改
- hp服务器维护开关,HP服务器开机无显维修案例
- CMake Error: CMake was unable to find a build program corresponding to Ninja.
- Spring4 MVC json问题(406 Not Acceptable)
- Dubbo源码学习总结系列三 dubbo-cluster集群模块
- python filter map区别_python中filter、map、reduce的区别
- OSGI和Spring动态模块–简单的Hello World
- Eclipse安装VJET报错解决办法
- azure云数据库_如何将MySQL表迁移到Microsoft Azure SQL数据库
- DE12 Continuation: General Theory for Inhomogeneous ODEs
- Python使用APP Inventor网络微数据库TinyWebDB
- 如何解决wmv/asf/asx格式转成mp4/avi/3gp/mpg/flv的问题
- justinmind夜话:数据母板系列视频教程之原型设计二十一条军规
- 射极跟随器负载过重引起的失真问题(摘抄)
- 苏宁2021“轻装上阵”,张近东:聚焦零售优势业务,增利减亏
- C语言基础知识入门和C语言入门基础知识大全
- 魔方(6)三阶空心魔方、二阶空心魔方
- Unity实时运动残影特效
- Python 教你哄女票开心
热门文章
- jquery的ajax用法
- 用线性代数理解 Normal Equation
- cocos2d(背景图片循环滚动)
- 使用游标逐行更新数据
- 数据库-使用Command对象进行数据库查询
- 将unsigned char字符串以16进制的字符串显示
- CStringArray 字符串数组的使用 以及调试时怎么Dump出其中的内容
- 大数据之-Hadoop3.x_MapReduce_数据压缩---大数据之hadoop3.x工作笔记0138
- 软考信息系统项目管理师_考试题型介绍_选择题75分_45分过_案例分析题_75分_45分过_计算题_论文题的架构和写法---软考高级之信息系统项目管理师002
- AndroidStudio_android多线程和异步任务_要学内容介绍_相关知识点---Android原生开发工作笔记241