代码改变世界

Images, Users, URL Fetch Python API——Google App Engine Services简介

2011-01-30 19:09  onm  阅读(243)  评论(0编辑  收藏  举报

上回说道《Mail, Memcache Python API》,这回简要说说Images, Users, URL Fetch Python API。

先说Images Python API,其实这个Images API没有提供太强力的方法。个人觉得主要是用于将用户上传的图片生成缩略图然后以Blob类型保存在数据库。Images API还提供了一些Image格式的转换和图片的变换方法(包括反转,裁剪等)。对于在本地开发服务器上使用这套API需要安装PIL。

Images Python API提供了一个Image类,需要传递str类型的图像数据或者blob数据的键值来进行实例化,提供了一系列的实例方法,具体参见这里。当然在google.appengine.api.images这个包里也提供了相应的函数,具体怎么用没有太大差别。

然后说The Users Python API,这个对于一些需要权限认证的网站还是很简单方便的。在google.appengine.app.users这个包里提供了创建登陆和登出url的方法,登陆后可以通过get_current_user()函数获得当先用户的实例对象,可以获得用户的一些基本信息。对于权限认证可以通过users包中的is_current_user_admin()函数进行判断。还可以通过设置app.yaml还对一些url进行权限设置。

最后说The URL Fetch Python API,这个相当于是Python自带类库中的urllib2系列,但是URL Fetch是基于Google的强大网络服务的,它更加高效伸缩性更强。在网上看到过别人说“urllib.urlopen()由于是基于socket的,在Google App Engine上禁用,使用该方法会返回403,访问被拒绝。”据我亲身实验,前半句是对的,但是在Google App Engine环境下调用urlopen()等进行HTTP的请求时,会自动使用URL Fetch服务进行替代。所以在Google App Engine上是可以使用urllib2中的一些函数的,用法上URL Fetch与urllib2有一些类似的地方,具体内容参见这里,我就不赘述了。