前段時間,在準備做個主頁。我在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:主頁上有視頻,看起來好像挺不錯的,期待。
商業的:
簡介:
- 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模板中相關的頁面菜單、當前頁面對象等都能被繼承。