python应用开发实践_python web应用开发实践 - 技术选型

个人体会,python在web方面的开发,入门不难,也就是说在浏览器输出一个简单的hello world很简单,但要写一些稍大型的复杂的web应用,还是要经过一番折腾和奋斗的。 对于一些习惯了MVC开发模式的人来说,如何设计程序架构就显得尤其重要。

开发一个web应用,必然要涉及到如下两个方面:

web 框架

python web开发框架有很多,如web.py, bottle, pyramid, flask, django, tornado......,至于选择哪一个框架就看个人口味了。但我想主要有一个大的原则:1)该框架社区活跃 2)该框架程序还在维护中 3)有很好的文档。 这样能保证你会有丰富的学习资源, 遇到问题后在各种社区(如stackoverflow, 相关bbs)提问,会有人给你帮助和指导。

当然,如果你足够牛B, 你也可以自己开发框架或者不使用框架。从开发效率方面讲, 我还是建议不要重复造轮子,使用现有框架。

数据库

和其他开发语言一样,python在数据库操作方面的功能也非常强大,你可以使用原生的SQL操作数据库,也可以使用现存的库。目前比较流行的ORM是sqlalchemy(支持sqllite, mysql, postgresql, oracle...) 前面提到的很多web框架都直接提供对sqlalchemy的集成。Sqlalchemy的功能非常强大,光文档就可以出一本厚厚的书了,想完全弄懂它也绝非易事。

当然,也有人觉得sqlalchemy太厚重,有很多几乎使用不到的功能。这里有一些比较轻量级的ORM库,如peewee。从功能上讲,peewee可以看作是sqlalchemy的一个子集,但它提供的功能对于web开发来说(query cache, transaction...),完全够用。最主要的是十分轻量,学习曲线很平,一般人很容易上手。

Pyramid + peewee + cornice方案

1) 我最终并没有选择目前很流行的django, 而是选择了pyramid作为web开发框架

2) 数据库ORM,我选择了比较轻量级的peewee

3) 用cornice 提供resetful API, 给各种设备调用(android,iOS, desktop, browser)

如果您有更好的方案,欢迎建议;如果您有不同的看法,欢迎探讨!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值