近日,google app engine推出了open source projects,已有近20个项目加入。taggable-mixin也是其中之一,由Adam Crossland主持维护。
Taggable 是一个Python mixin class,可以添加在任何从Google App Engine db.Model 继承的类中。taggable主要通过get_tags_as_string、set_tags和set_tags_from_string等方法实现对 tag的存取。以下是我对taggable进行的尝试:
在使用taggable前,首先把 taggable.py 复制到您的application目录。
Read more
GAE目前还不允许用户操作文件系统,上传的图片只能通过数据库存取。以下的代码实现了shop表中logo图片的动态显示:
class showShopLogo(webapp.RequestHandler):
def get(self):
shopid = self.request.get('sid')
shop = Shop.get_by_id(int(shopid))
if (shop and shop.logo):
img = images.Image(shop.logo)
img.resize(width=128, height=128)
tumbimg = img.execute_transforms(output_encoding=images.PNG)
self.response.headers['Content-Type'] = 'image/png'
self.response.out.write(tumbimg)
else:
self.redirect('/images/nologo.png')
定义处理路径:
application = webapp.WSGIApplication(
[ ...
('/shop/logo', showShopLogo),
( ...)
], debug=True)
wsgiref.handlers.CGIHandler().run(application)
我们可以通过http://example.com/shop/logo?sid=5这样的格式访问图片,在模板文件中,用<img src=”/shop/logo?sid={{shop.key.id}}” />实现图片的显示。
最近申请了google app engine服务,可以尝试用python做网页。早年曾经接触过一点django,断断续续地看了一点文档,
但是除了limodou的step by step里的示例外,也没做过其他什么的了。但是优雅的python仍然是我最喜欢的语言,时不时地总会去关注它。GAE的发布对诸多python爱好者来说,真是一个好消息。
plog是kommit写的一个在google app engine上运行的blog,目前的功能还比较简单,用来学习挺不错的,代码不多,加上python语言易懂,基本都能看明白。昨天看到kommit说plog的默认模板难看,我觉得也是:-), 于是萌生了做一个模板试试看,也可以更了解GAE的web框架。说干就干,昨晚动手到今天完成。除了template和style文件的修改外,还修改了一些代码,效果可以看一下演示。
kommit计划重构plog,重构后plog会实现简便的模板定制功能和插件接口,我期待着一个功能完善、使用便捷的plog。