2011 6 21 09:09 PM 2702 次查看
分类:Google App Engine 标签:Google App Engine, Python
前些日子有人问Doodle是否支持Windows Live Writer,我只是回答了不支持而已。原因很简单,我的Windows XP很奇怪,几次装Live Writer都失败,对微软已经绝望了。
不过现在已经转移到Mac OS X上了,装软件没这么奇葩的兼容性问题,于是就研究起weblog publishing API来。
博客发布API大致有2类:一类是基于XML-RPC服务的,包括Blogger API、MetaWeblog API、MovableType API和WordPress API等;另一类则是Atom Publishing Protocol。
后者虽然技术上比前者强大,但较为复杂(例如认证是基于HTTP的认证机制),而且由于出现得较晚,支持它的也比较少。当然,对我来说更重要的是文档很难找,因为这个协议并不只用于blog,一些细节上的东西就不知道怎么搜索了。
于是比较了1天后,还是选择了XML-RPC。简单来说,它就是用XML封装方法名和各个参数,POST给XML-RPC服务器,再由服务器返回XML封装的方法运行结果。至于各种API,实际上只是方法和参数的差异,原理都是一致的。
下面举个提供加法的XML-RPC例子。
2011 5 8 07:12 PM 6187 次查看
分类:Python 标签:Python
刚才看到一篇《Linear equations solver in 3 lines (Python recipe)》,用3行代码实现了解一元一次方程:
>>> solve("x - 2*x + 5*x - 46*(235-24) = x + 2")
3236.0
源码:
def solve(eq,var='x'):
eq1 = eq.replace("=","-(")+")"
c = eval(eq1,{var:1j})
return -c.real/c.imag
2011 2 11 07:50 PM 10607 次查看
分类:Python 标签:Python
这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮映射为点击鼠标。
网上搜了一下,没发现什么现成的软件,而按键精灵又太重量级了,于是考虑干脆自己用Python写个算了。
2011 1 8 06:12 PM 2345 次查看
分类:Google App Engine 标签:Google App Engine, Python
今天Guido van Rossum(Python的作者)公布了一个新的App Engine datastore API:Datastore Plus。
这个API采用全新的设计,突出了异步执行这个特点,具体介绍可以参考文档。目前还没有全部完成(包括设计),因此接口仍然会修改,有需求的可以尽早向Guido提出。
2010 12 23 12:00 PM 1724 次查看
分类:Google App Engine 标签:Google App Engine, Python
以前曾写过一篇《避免ReferenceProperty自动解引用》,那篇文章里提到了使用get_value_for_datastore来获取原始值,避免自动解引用的方法。
不过Property还有个奇怪的make_value_from_datastore方法,它的用法其实正好和get_value_for_datastore相反:后者是直接返回实体中与数据库里存储的一致的属性值,即真实存储的值是它;而前者则是在保存属性值时,对其做相应的转换,使它可以转换成datastore中适合存储的类型。(注:这里是指原始实现,你可以覆盖它以实现想要的效果。)
2010 12 22 07:15 PM 18239 次查看
分类:Python 标签:Python
本文很久未更新,仅供参考。
今天注册了下新浪微博,无聊之余便想写个应用玩玩。之前也曾写过Twitter的应用,因此这次自然是得心应手,不到半小时就写完了一个应用…
2010 12 17 05:00 PM 1400 次查看
分类:Python 标签:Python
2010 12 15 12:39 AM 2245 次查看
分类:Python 标签:Python
Python的dict类型是个很赞的玩意,不过在获取值时却有点麻烦,因为[]操作符会在key不存在时抛出KeyError异常。
很容易想到3种方法来解决这个问题:先判断key是否存在,然后再获取;直接获取,但是捕捉异常;使用get方法的第二个参数。
2010 12 14 08:26 PM 10403 次查看
分类:Python 标签:Python
Python标准库里提供了time、datetime和calendar这3个模块来进行时间和日期的处理,其中应用最广的是datetime,而转换时区也是靠它来做的。
时区这个玩意非常抽象,处理它时经常弄得我头晕,只好记录下来,免得以后再犯晕。