Skip to content

为什么使用django

使用django的缘由

很多事情在开始之初,一般很难会有绝对成熟的理由和卓越的趋势判断。因此当初选择django入手,主要只是出于这么几个考虑:

  1. 后台需要更敏捷些。这也是python一早就映入了我的眼帘的原因,也是出于对现有后端平台开发状况的不满。当前团队主要在使用的后台开发技术已经积累地比较成熟,能够很好地满足项目的需要,但未必适合轻量级甚至创新型应用的推进。或框架过于庞大,或组织过于凌乱。希望能够有一个平台能够介于两者之间,并且最好是可控的。
  2. 不重复造轮子。其实python的世界里从来不乏好的框架,不同框架之间的优劣争论也四处可见也从未见过可靠的结论。我的看法是,适用即可。对于综合性非常强的gis类应用,我不希望在基础架构上耗费太多的精力。django是一个考虑周详的框架,从ORM到admin管理工具,他思考了几乎所有的主要问题。
  3. 适度可控。尽管我不造轮子,但是如果轮子出现什么问题,我依旧能够对他进行改造,哪怕是打补丁,来满足我的需要。django是一个开源软件,并且代码组织良好,发展多年来一直比较稳定,在国外也拥有相当的用户基础,虽然一度被职责不够灵活,但是在我看来,框架与灵活本就是一堆矛盾,只在于供需一致性。

开始尝试

万事开头难,我一直希望在繁忙中可以逐渐积累出一个app的雏形,以供多个方向参考发展只用。这可以是个不太复杂的应用,但必须适用并且贴合实际。这个有点难,因为每个人的行为和理想很难完全保持一直。但是好在我们有不错的机会推动,以至于app很快就从零开始产生。

起初,django扮演的角色并不复杂。我们需要一个用户管理环境,包括用户的增删改查和图层权限分配。django的user管理模型能够适应大多数初级需求,并且我们没有多余的人手去改造以前的技术平台,因此,就这么开始了。

orm、auth、session与admin

这几个轮子都是django的重要组成部分。

orm机制解放了大多数对关系数据库的操作,尤其是对关联表的操作;另一个好处是会强迫自己更加重视设计。即便是对于初学者,一而再、再而三的修改model,对于操作来说,毫无压力。

和一般应用的主要的区别,需求并不是在做一个网站,而是一个iPhone app。这要求我从一开始就要熟悉django的用户管理机制,并且尝试改造它。auth和session模块是django中相当成熟的部分,主要考虑的,是和iOS的native app的整合程度。坦白讲,这种做法还太小众,但是stackoverflow已久可以找到一些资源。

我们确实需要不同的管理员角色,来管理部分数据表,比如地图图层的管理——admin是一个非常理想的工具,他解放了双手,提供了一个不算太优雅,但也不是很差的model到可编辑表格的转换,可以满足使用。当然,有不少其他爱好者的工具,比如类似xadmin的对admin的梅花替换。

并不完美,但有助于协作

起初独立来完成这些工作,实属无奈,没有多余的人手,熟悉python框架的人更少。但是长远看,python严谨的语法,和django古板、保守的设计,一定程度上有助于后期的多人协作。尤其是project到apps的模块化分解,可以做到淋漓精致,这个目前还在实践中慢慢完善。

Published in开发

80 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注