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