与其说Django-cms是一个内容管理系统,不如说其实一个基础的开发平台。与常规的cms不同,Django-cms并不是一个开箱即用的产品,也没有提供很多内置的模板和主题,让用户快速的搭建一个网站出来。相反,要想使用Django-cms要求用户必须熟悉Django,其搭建的的过程很"像"一个是用Django开发的过程。
本文根据一天的文档阅读心得总结而来。
从结构上来说Django-cms包含以下内容:
1、一个基础框架:
- 多站点支持——好吧,其实是Django的
- 多语言支持。没个页面可以有不同语言的版本。
- Page管理。后台可视化支持,包括Page结构和Page中插件(Plugin)的配置等
- 可扩展的菜单系统
- 集成/继承自Django的模板系统。增加placeholder。
- 基于plugin的扩展机制——与Django应用(app)的集成。
2、一组插件
- file
- text
- googlemap
- flash
- video
3、一组模板标签
- show_menu
- show_breadcrumb
- show_submenu
- placeholder
- ......
4、其他
- SEO支持
- 虚拟根(soft root)
- sitemap
- (内容)版本历史记录功能
- ...
从使用上来说,Django-cms的首要客户应该是程序员,而不是最终用户或设计师。这是由其部署过程决定的,在使用Django-cms开发一个网站的时候,大体上要遵循如下步骤:
- 使用标准的django-admin.py startproject建立标准Django项目
- 修改settings.py,INSTALLED_APPS增加cms、menu及其他的插件,TEMPLATE_CONTEXT_PROCESSORS、LANGUAGES、及其他CMS_开头的配置信息
- 使用manage.py syncdb生成数据库
- 开发模板和样式
- manage.py runserver启动
- 然后才是使用后台系统构建目标网站结构
- 如果发现需求无法满足,可以去Django-cms网站查询插件库或者根据其扩展机制开发自己的plugin。这纯粹是在标准Django 应用(app)开发的基础上,外加一个与Django-cms的集成。
虽然Django-cms提供的开箱即用功能不多,但是它却提供了一个非常好的基础结构,让开发人员可以快速构建产品。所以从这个角度来说称其为enhanced-django似乎更合适。