與其說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似乎更合適。