豆瓣网:用Quixote和web.py打造强大的网站

kkkkk 2019年9月23日 20:49 python框架
豆瓣是一个使用Python进行开发的网站。
测试

在开发框架方面,豆瓣主要使用Quixote(一个轻量级的Python Web框架,简单、高效,代码简洁);后台运行的Web服务主要使用Web.py(web.py也是一个Python的Web框架,简单且功能强大)。

豆瓣网可分割成两大块:一块是前端的Web,也就是用户在浏览器访问的时候会触发一系列的操作,从数据库拿出数据,渲染成HTML页面反馈给用户,这是前端;另外一块是后端,在豆瓣有一个很强的数据挖掘团队,每天把用户产生的数据进行分析,进行组合,然后产生出用户推荐,然后放在数据库里面,前端会实时的抓取这些数据显示给用户。

豆瓣(架构)设计现在在WEB这一端主要是用这么几种技术:前端是nginx和lighttpd,中间是Quixote的Web框架,后面是MySQL以及我们自己开发的DoubanDB。这些除了Quixote都是一些比较流行的、尖端的技术。Quixote稍微老一点,如果要重新设计的话,可能会在这方面做一些考虑。比如Python社区中的Django、Pylons等等都是可以考虑的,那么在豆瓣的内部的话,我们一般是用web.py,很轻量的一个Web框架来做,也是非常不错的选择,它可能需要自己做的事情多一点。

豆瓣现在还没有达到数据库分片的程度。最常见的手段是,按照功能分区。我们会把数据表分成几个独立的库,现在是一共有4个库。每个表都是库的一个部分,每个库会有主副两个。通过这种方式来减轻数据库的压力,当然这个是现在的方案,再往后的话,表的行数会增长,到达一定的程度后,还要进行水平分割,这是肯定的。然后我们现在的技术方面,在操作数据库之前,首先获取数据库的游标,有一个方法,这个方法会干所有的事情,我们以后做的时候会从这个方法中进行判断该从哪取东西。这个架构已经在了,只是现在还没有做这一步而已。
文章评论(0)
  • avatar kkkkkk 2018年12月21日 11:31
    给跪了
    kkkkk
    2018年12月21日 11:16
    选词失当,譬喻不切 认识错误,不切题意。文辞生硬,未能达意。含义空虚,句亦欠顺。
    回复
  • avatar kkkkkk 2018年12月21日 11:31
    Youkou老师厉害吧!
    kkkkklxinde
    2018年12月21日 11:17
    本文独擅胜场之处在于其体现出的作者思维的穿透力与概括性。本文由材料切入,引出观点,并以此为重点展开阐述;同时做辩证分析,体现了作者思维的高度和思考的深入。第三段联系现实概述种种需要“更”的表现,言约而意丰。新颖而有力的论证观点。
    回复
  • avatar kkkkklxinde 2018年12月21日 11:17
    本文独擅胜场之处在于其体现出的作者思维的穿透力与概括性。本文由材料切入,引出观点,并以此为重点展开阐述;同时做辩证分析,体现了作者思维的高度和思考的深入。第三段联系现实概述种种需要“更”的表现,言约而意丰。新颖而有力的论证观点。
    回复
  • avatar kkkkk 2018年12月21日 11:16
    选词失当,譬喻不切 认识错误,不切题意。文辞生硬,未能达意。含义空虚,句亦欠顺。
    回复