一站式Python开发框架简评之—Django


谈到框架使用经验,我相信很多开发者都能写出一套属于自己的框架实践手册。很多人都说“开源”是未来技术发展的方向,2013这一年,更是开源框架活跃在开发者视线的一年。

不同于Ruby语言中Rails呈现霸主地位,JavaScript、Python、PHP等领域的框架出现“百家争鸣”的现象。小编今天不谈JavaScript框架,因为今年已经说的太多了。而另一脚本语言PHP,虽然也有不少的框架,但远没有Python框架之势。所以,今天我们来谈谈Python框架。

如果从繁多的Python框架中挑出一个最大的、最壮硕的框架。一定是Django无疑了。Google App Engine甚至Erlang都有框架受它影响。要说Django让众多开发者驻足的原因,最最最重要的应当是Django拥有和其他框架相比最完善的官方文档。当然肯定还会有其他的原因,但只有这一因素,小编敢打保票没有人会反对。因此,Django成功的很大一部分原因要归功于此。

Django还有很多的有点,最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,就可以自动生成数据库结构、以及全功能的管理后台。如此方便的功能实现,背后同时意味着Django内置的ORM跟框架内的其他模块耦合程度高。所有的应用程序都默认使用Django内置的ORM,否则,就不能享受框架内部提供的一系列基于其ORM的功能。

Django有个很有意思的模板系统设计,却也是其框架内影响最大、争议最大的部分。

从Django模板的设计哲学角度出发,它将代码、样式分离。但其设计理念与Asp.net提倡的将代码和模板分离有所不同。Asp.net虽倡导此种模式,但在技术上还是能混合的。而Django则是从根本上杜绝在模板中进行编码、处理数据的可能。

举个简单的例子:

  1. <% 
  2.   int i; 
  3.   for(i==0;i<10;i++){ 
  4.   .... 
  5.   } 
  6. %> 

类似上面这种代码,Django是彻底不支持的。函数的使用上,仅限于其模板的内置函数。换句话说,实际是为其模板构造了一种“新语言”。不过“新语言”简单易懂,能很轻松的将其模板移植到不同的平台。

基于上述原因,是否容忍在模板中编程,成了Django模板争议的最大之处。在大多数情况下,Django模板能够满足一切需求。如遇“特殊”情况,不得不在模板中嵌入代码的时候,就要根据模板的规则进行扩展。只是有时候,模板中直接写一行代码能够解决的问题,用模板扩展实现后,会变成十几行代码。这样看来,怎么都是麻烦了。

宗上所述,就Django的特性而言,Django更适合中小型网站的建设,或者是作为大型网站快速实现产品雏形的工具。

评论关闭