蓝鲸DevOps的开发框架---Django
众所周知, Django 是由Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!。 那么为什么会选择用Django作为蓝鲸DevOps的开发框架呢? http://www.ITILchina.cn/a/157.files/image002.pngPython下各种框架简单对比一个完整的Web应用框架包括下面功能的支持:1. 服务发布2. URL分发3. 模板支持4. 数据库处理 Python框架一般都支持前3个方面,按对第4个功能的支持情况分类如下: 平台性框架:不依赖数据库,更关注服务的高效构建和运行平台的稳定。代表性框架:Zope和Twisted。 轻小型框架:认为数据库不是应用的必要因素,更关注友好快速的简单任务的开发。代表性框架:Cherry,Quixote和web.py,没有内置的数据库支持模块。 一站式框架:认为数据库是应用的重要因素,关注如何仅基于本身快速实现一个功能性网站。代表性框架:Django,TurboGears。 http://www.ITILchina.cn/a/157.files/image003.pngDjango采用了MVC的软件设计模式,即模型M,视图V和控制器C。主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。 http://www.ITILchina.cn/a/157.files/image004.png Django吸引人的特点 在Python各种web框架中,Django的文档最完善、市场占有率最高、招聘职位最多! http://www.ITILchina.cn/a/157.files/image005.pngDjango的优点 完美的文档。Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Djangobook)。 全套的解决方案。Django象Rails一样,提供全套的解决方案(full-stackframework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,开发网站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。 强大的URL路由配置。Django让你可以设计出非常优雅的URL,在Django里你基本可以跟丑陋的GET参数说拜拜。 自助管理后台。admin interface是Django里比较吸引眼球的一项contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。 http://www.ITILchina.cn/a/157.files/image006.png当然,近乎完美的优点也造就了缺陷(源自Django坚持自己造所有的轮子,整个系统相对封闭),比如:系统紧耦合,很难用第三方库来代替内置的某个功能;Python做配置文件,而不是传统的int、xml、yaml等,不能动态改变settings的值;Template功能比较弱,不方便插入Python代码处理复杂逻辑等。而其中最主要的是Template功能。http://www.ITILchina.cn/a/157.files/image007.png当Django遇见mako,这个缺陷迎刃而解。mako是Python的模板语言之一,简单快速,对模块化编程支持到位,能直接调用python代码。
小例子窥探mako技能:
http://www.ITILchina.cn/a/157.files/image009.jpg 综上所述,蓝鲸选择用Django+mako来构建开发框架,为运维同仁带来简单、高效的蓝鲸DevOps实践方案。
(小鲸原创)
页:
[1]