Mail,Memcache Python API——Google App Engine Services简介
2011-01-28 11:08 onm 阅读(370) 评论(0) 编辑 收藏 举报之前写过一篇介绍Google App Engine提供的服务中的XMPP和Channel的东西,记录在《基于Google AppEngine的XMPP和Channel Service的机器人+Web群聊的一些实现思路和简介》。我曾想过在“Micolog部落”里用遍Google App Engine提供的所有服务,至今用到了Channel,Images,Mail,Memcache,Task Queues,URL Fetch,Users,XMPP,还没有用过的有Blobstore,Multienancy,OAuth。我也打算将Google AppEngine提供的服务全都介绍一遍,上次介绍了XMPP和Channel,今天介绍Mail和Memcache。
Mail Python API就是提供开发人员一个发送邮件的简单的接口,发件人可以是当前登陆的用户也可以是你的AppEngine应用的管理员。
一封邮件包含字段:sender(发件人),to(收件人),cc(抄送),bcc(密送),reply_to(回复人),subject(主题),body(纯文本正文),html(HTML正文),attachments(附件)。当然没必要全部使用。
Mail Python API使用起来非常简单,它提供了发送邮件的函数send_mail()(给某人发送邮件)和send_mail_to_admins()(发送邮件给管理员)以及检查检查邮件地址是否有效的函数check_email_valid(),invalid_email_reason()和is_email_valid()。另一方面提供了面向对象风格的一个类EmailMessage,这个类封装了一封Email的所有属性和方法。可以通过实例对象调用send()方法进行发送邮件,还有is_initialized()和check_initialized()用于检查是否EmailMessage实例对象已经成功初始化。
来看一个"Micolog部落"中用到的代码:
to = blog.user.email() subject = u'有人给您的博客投票了,快去看看。' body = u'''您在 Micolog部落 上注册的博客:%s,有人给您的博客投票了,快去看看。 您也可以给别人的博客投票,试试看。 http://micolog-tribe.appspot.com ''' % (blog.name,) mail.send_mail(settings.MAILSENDER, to, subject, body)
然后介绍Memcache Python API,Memcache就是内存缓存,而且是分布式的。其实缓存在很多地方都可以看到。对于不是经常更新而且磁盘读取和运算代价比较大的一些数据,通常都进行缓存。Memcache Python API也是提供给了开发人员简单的接口,比较常用的有get(),add(),set(),delete()方法,Memcache采用键值对方式存取,并且可以设置缓存过期时间,当缓存过期后,缓存失效。这里说一下add()和set()方法的区别,add()方法是如果当前Memcache中不存在add的键,则将键值对缓存,如果已经存在则不做操作。而set()方法是无论是否存在设置的键的缓存,都进行更新操作。还有一些其它的函数和一些细节可以参考这里。值得注意的是Memcache对于单个缓存项的大小存在最大限制,为1M。
来看一个“Micolog部落”中用到的代码:
top3 = memcache.get('top3') if top3 is None: # 中间省略 memcache.add('top3', top3)