Size: 3269
Comment:
|
Size: 3239
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 19: | Line 19: |
Python 的 web 框架的情况其实跟 java 有点类似,百家争鸣, 但全部都统一于 MVC 这样一个抽象的大模式之下。 |
在 Python 的世界,web 框架百家争鸣, 但基本统一于 MVC 这样一个抽象的大模式之下。 |
Line 43: | Line 43: |
几个主流现在的框架中,组成它们的骨架和肉往往是一些独立的可重用的组件。 | 几个主流现代的框架中,组成它们的骨架和肉往往是一些独立的可重用的组件。 |
:status: 草稿 ;HuangYi; 100%; .. contents:: ==================== Python Web 框架概览 ==================== 在 Python 的世界,web 框架百家争鸣, 但基本统一于 MVC 这样一个抽象的大模式之下。 其实会觉得在这些框架中 MVC 也许并不是最重要的特质。MVC 只是 个骨架, DRY(Dont Repeat Yourself)、COC(Convention Over Configuration) 的原则, 在追求纯粹、灵活和实用性之间微妙的权衡,设计的哲学,才是这些框架的灵魂。 但是从骨架讲起,总是比较容易理清思路的。 多少年来,MVC模式不断演化,各种变种相继出现然后消失。在 Python 的世界里, 这种种的变数,在近年却难得地达到了某种新的统一。 :: Model数据模型 URL分发器 Controller控制器 Template模板 上图便是我们说的骨架了。当http请求进入 web 应用程序的疆域, URL分发器首先根据提供的资源地址, 找到相应负责的控制器,控制器这里是核心的业务逻辑, 或是查询 Model 数据,在将数据填充到模板, 最终产生适当格式的资源的呈现(比如HTML); 或是处理表单,再通过 Model 持久保存数据,等等。 在搭建 Web 框架这样一座宏伟大厦的过程中,python开发者特别重视轮子的重用。 几个主流现代的框架中,组成它们的骨架和肉往往是一些独立的可重用的组件。 所以说 python 开发者都是聪明人:框架多样,可以形成激励不断创新的良性竞争; 重用性好,又可以节省昂贵的人力资源。 =========== ================= =========== =========== ============== 框架 URL分发器 模板 ORM Form 库 =========== ================= =========== =========== ============== Django Django Django Django Django ----------- ----------------- ----------- ----------- -------------- TurboGears Object Publisher Genshi SQLAlchemy ToscaWidgets ----------- ----------------- ----------- ----------- -------------- Pylons Routes Mako SQLAlchemy ToscaWidgets ----------- ----------------- ----------- ----------- -------------- CherryPy Object Publisher -- -- -- =========== ================= =========== =========== ============== Python web 框架的骨架是灵活的,CherryPy 那一栏似乎有好几个骨架缺失,但 实际上其实是把选择的权利交给了你。而其他框架虽然似乎都已经替你做好 了选择,实际上只要你愿意,有很多组件你都是可以很灵活地进行替换的。 关于骨架便说到这为止了,至于让这些框架活起来的那口气,还待我细细道来 ...