Flask 项目推介:新锐女性化妆品分享网站“优容网”技术架构分析

发布时间:2011-04-13 02:08:06, 关注:+14661, 赞美:+13, 不爽:+9

本文标签: flask 优容网 化妆品 社区

作者:老秋(转眼几年过去,小秋都变成老秋了……)

较早之前写过一篇“便宜否”的淘宝客应用项目,是用web.py写的,当时也写过不少web.py的项目,大都是自己在内部使用,“便宜否”是为朋友写的唯一在外部使用的。学习flask也是朋友Davidx的推介。

先介绍下优容网(yoro.com),这是我flask的第二个项目,主要是做女性化妆品分享社区,希望女生通过这个平台能找到适合自己肤质的化妆品。

优容网 yoro.com

为什么选择 Flask?而不是 Django 或 web.py?

这个项目还有一个主力是cloud,参于服务器架构到核心代码编写。先说说为什么选择flask,最初我们都使用过django,都不喜欢django的紧耦合;试了下web.py,又发现虽然东西小,要自己写的东西太多了,特别是form和db方面;最后决定了flask,有django一样的templates和models风格,又有web.py的小巧,而且还有许多强大的第三方插件,团队pocoo.org也是比较靠谱的。

项目结构

受到django的影响,yoro的项目结构我们使用了独立app的形式,里面包含app各自的models,views和forms,这样使用的好处是分离app各功能,尽量做到独立应用,缺点是项目中的交叉引用会显得比较乱。

用到哪些 flask 插件?

  • flask_sqlalchemy: flask对sqlalchemy的插件,定义了一些方法,使创建models和输出query更方便
  • flask_wtf: 对wtforms的插件,默认加入了csrf功能(防止表单重复提交)和Recaptcha(验证码)
  • flask_uploads: 上传文件的插件
  • flask_cache: 缓存插件(支持memcached,gaememcached,filesystem,simple等)
  • flask_principal: 权限插件 (众多插件中比较复杂的一个, 但也是作用很大的一个),支持各种权限方式,较django admin的权限,我只能说,这个插件让你知道,权限其实很简单。
  • flask_mail: 发送邮件插件
  • flask_script: 项目管理插件,类似django的manager
  • 当然还有很多有用的插件如flask_oauth,flask_themes,flask_babel等

主要功能

  • 用户系统
  • 站内邮件系统
  • 基本的sns(关注/我说)
  • 商品点评推荐
  • 任务平台
  • 兑换平台
  • 后台管理

技术细节

  • 站内邮件系统中有一项功能比较特别,当系统发送信息给所有用户,考虑到一次性存大量数据到数据库是不合理的,采用了lazy_load模式,只有当用户登录了,才会对用户发送信件。
  • SNS方面,使用了通用模块,类似django中的contenttype,将评论和推荐应用到了所有模块上。这个是flask里缺少的 功能。
  • yoro的对外邮件提醒功能,采用了rabbitMQ,这个队列异常强大。
  • logging项目日志功能,当项目在运行时,报过何种异常或是错误,都会邮件提醒,很酷吧。
  • 前端使用了较多的ajax调用,也较多的使用到了html5技术。ps: flask里的jsonify功能要慎用,ie6下面无法正常接收json的mime,需要使用text/html形式的

yoro 这个项目还在紧张的测试中,近期产品还会有一次大的调整,大家可以让自己的女性朋友试用试用,对产品提提建议,如果想探讨项目中使用到的技术,或是学习flask,欢迎给我写邮件。 

关于作者:

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

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠