Pages

Saturday, 24 November 2012

用django搭建的cms简介

花了些时间了解python下的cms。
python中,当前最热的框架是django,自然在其上面的应用也是最多的。google了一轮,找到的cms系统大部分是用django构建。先列举一下:
  1. django-cms
  2. PyLucid
  3. ella
  4. django-blocks
  5. The Open Church
  6. feincms
  7. django-page-cms:像django-cms,这两个是不是有些关系。主页上有demo和管理端演示。
  8. ddtcms:国人开发的
  9. drupy:用python实现的Drupal,好像没更新啦。
  10. skeletonz:非django的,停止开发啦。
 
将要开源的:
  1. messagecms:主页做得很漂亮,期待。
  2. gondolacms:主页上有视频,看起来好像挺不错的,期待。
 
商业的:
  1. webcubecms
 
简介:
  1. ella:一直在更新中,主页说暂时不建议做项目。装了运行,ella基本不怎么使用原始的admin,自己新搞了个newadmin,功能强大,以对象发布的概念去编辑对象,设置对象发布。整个cms系统集成了定制的cache功能,性能应该不错吧?
  2. PyLucid: 像是一个蛮成熟的项目。cms管理也不使用原始的admin,直接在当前页面上增加管理功能,页面的编辑、新增和删除等操作比较方便。使用django tag扩展页面内容。特色是基本所有web开发用到的基础元素,都可以直接在页面上编辑,如css、模板等。集成自己的cache。
  3. django-cms:对这个了解最深入。其重点突出页面内容的扩展(扩展包列表, 允许开发者上传自己实现的扩展)和与其它web模块的结合。页面管理使用django的admin,扩展了它的功能,方便页面编辑、新增、删除,实现页面 树拖动等。支持草稿功能,使用django_reversion来实现版本管理功能。喜欢这个cms系统的原因是,概念清晰:
    • 对于需要由cms系统制作的页面,提供了强大的页面内容扩展功能: 内容插件系统扩展内容,自定义页面模板实现页面设计和布局,随意设置插件区并admin提供编辑支持。这些插件在admin里能render显示出效果, 能根据开发者要求编辑参数,相比django的tag扩展形象多啦,对于用户更友好。举例,如主页右边栏需要显示最新的新闻列表,先开发或使用现成的新闻 模块,再针对该模块开发django-cms的新闻列表插件;编辑主页模板,增加右边栏插件区;在admin里面,编辑主页,会看到右边栏插件区,在该区 增加新闻列表插件。
    • 对于动态的页面,可以使用其他模块来实现,django-cms为 其他模块提供了简单方便的结合功能:方便的合并其他模块的url,为某一其他模块分配一个页面对象。其他模块的url映射可以很方便的出现在cms系统 中;它的模板也可以继承至cms的模板,cms模板中相关的页面菜单、当前页面对象等都能被继承。