web.py 项目推介:基于淘宝API的购物返利网站

在淘宝API应用风靡网络的时候,我也想尝试一把,做一个淘宝客网站,定名为“便宜否”(http://t.pianyifou.com/),本来打算用django开发,经一个朋友介绍web.py非常简洁,于是选择了web.py开发。

涉及的主要软件和模块有:

  • Apache2:使用mod_wsgi模块
  • Python-MySQL:使用了mysql数据库
  • Jinjia2:web.py自带的模板有一些格式问题,加之我喜欢django风格的模板,于是选择了Jinja2
  • SQLalchemy: web.py自带的db非常不错,但当涉及多表操作比较复杂时,我比较喜欢更强大一点的ORM来处理,sa就是最好的选择
  • Pymmseg:中文分词模板

“便宜否”的主要功能

就是搜索到要购买的商品,通过“便宜否”进行下单,得到淘宝客返利,从而实现便宜购物的新思路。为了使项目更快完成,我对UI并没下功夫,我认为Bing的UI非常适合,于是直接对 http://bing.com 的UI下了手。嘿~~

“便宜否”的技术细节

  • “便宜否”涉及到淘宝API的主要程序,只是通过urllib2,取得json数据返回。更多的工作,是需要对淘宝API取回的数据进行存储和进一步处理。
  • “便宜否”必须解决一个缓存问题,因为淘宝API有限时限量处理请求;其次,取回的数据非常基本,我们要给用户好的体验,必须取得更多的额外信息,比如30天售出、商家服务、商品评论等等。这里我使用Jquery的ajax进行了异步处理,同样缓存到了数据库。
  • “便宜否”内部还有很多比较有意思的东西,比如:
    • 我存储了用户搜索的关键字,当用户搜索相关词语时,我对关键字进行中文分词,找出了相关的关键字,组成了相关搜索;
    • 用户通过便宜否进行购物的同时,我也记录了用户行为,当淘宝API返回了成交的订单,我对订单进行分析,准确定位到用户行为,确定是某用户的订单,并自动返利到用户的帐户。
    • 因为部署在windows下,所以我自己写了一个定时器,定时获取淘宝API订单数据,进行数据处理。
  • 可以说,web.py的简洁,让我很快完成了这些工作,当然没有django的admin,我得手动为便宜否设置管理后台。
  • 当然web.py也有一部分不足之处,一是多app下使用session的复杂程度,远超出我的想象。
  • 其次在处理编码的时候也有一些问题,不能很好处理url下直接输入中文和get中文参数的问题,源于safeunicode的处理问题。我虽然对源代码进行了修改,能正确处理中文,却对其他亚洲语言(日语、韩语等)无法正确处理。
  • 总而言之,web.py已远超出我的预期,小小麻雀,五脏俱全,还有i18n功能呢,祝愿web.py越来越好,pythoner越来越多。

关于作者:

老秋是05年开始从事前端设计的设计师,于07年喜欢上python,至今一直保持着这个业余爱好。学习并使用过一些流行框架,如django,webpy,flask,turbogears。
Gtalk: alawn84@gmail.com
地区:杭州
网站:http://www.laoqiu.com/
豆瓣:http://www.douban.com/people/alawn84/

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。