簡介
LBForum 用django開發的論壇系統,演示地址為:http://vik.haoluobo.com/lbforum/
項目的地址為:http://github.com/vicalloy/LBForum
界面部分抄的 FluxBB(一個開源的PHP論壇 http://fluxbb.org/ )。
雖然Django寫的論壇也不少,不過還真沒什么好用的。
大多Django論壇都是獨立的app,而且不少還缺模板,想我這樣有經驗的Django用戶要跑起來都覺得麻煩,其他普通用戶就更別說了。
LBForum主要注重部署的方便性和易用性,功能方面目前還比較簡單。
LBForum一開始就是以整站的形式提供,所以以LBForum做為基礎項目進行二次開發是很容易的。
同時LBForum的開發盡量遵照Django可復用app原則,因此即使需要將LBForum做為獨立的app集成到其他項目也并不會太難。
主要功能
目前功能還比較簡單,而且還有些小問題有待修正。
- 論壇分類,分版塊
- 發帖,回帖
- BBCode支持
- 置頂貼
- 使用django admin提供論壇管理功能
用開發服務器把LBForum跑起來
- 先把代碼down下來。LBForum托管在github上,http://github.com/vicalloy/LBForum 。如果你沒有安裝git,你可以直接用界面右上方的download
source功能下載代碼。
- 運行"scripts"create_lbforum_env.py初始化lbforum的python虛擬環境。該腳本會自動創建一個python的虛擬環境并使用easy_install安裝對應的依賴包,同時將一些依賴包解壓到對應的目錄中。
注:django使用的是svn版本,所以機器上必須要安裝有SVN,不然腳本會運行失敗。如果因為由于svn的問題導致腳本運行失敗,可以運行lbforum_env.bat進入lbforum環境,手動安裝django的svn版本。
- 環境初始化好后,運行lbforum_env.bat進入lbforum環境
- 運行%mg% syncdb初始化數據庫
- 運行%mg% runserver啟動django開發服務器
- 進入admin,創建論壇分類和版塊
- 進入版塊發帖
LBForum的目錄結構說明
|+lbforum_env/#lbforum運行的python虛擬環境,運行create_lbforum_env.py后自動創建
|+requirements/#lbforum用的第三方庫和app,運行的時候會將該目錄加到python路徑
|~scripts/#工程相關腳本
| |-create_lbforum_env.py#初始化python虛擬環境,并自動安裝easy_install/django依賴庫
| |-helper.py#提供其他腳本所需的輔助函數
| `-lbforum_env.bat*#啟動lbforum運行的虛擬環境及,并為lbforum的manage.py提供快捷方式%mg%,比如初始化數據庫%mg%
syncdb
|~sites/#站點配置/模板/靜態文件
| `~default/#默認站點
| |+static/#靜態資源文件,如css等
| |+templates/#Django模板目錄
| |+templates_plus/#Django模板目錄,用戶將自己重寫過的目標放到該目錄
| `-……
|~src/#django的app目錄
| |+account/#account相關app。具體站點通常會對用戶中心進行定制,所以該app在實際應用中很可能需要針對實際情況進行修改。
| |+djangohelper/#一些django的輔助函數等,
| |+lbforum/#lbforum的主app,論壇功能都在改app中
| |+lbregistration/#registration app的lbforum擴展,主要去掉郵件地址認證功能
| |+onlineuser/#顯示在線用戶的app(可復用的django app,可脫離lbforum單獨使用)
| `+simpleavatar/#頭像功能的app(可復用的django app,可脫離lbforum單獨使用,依賴djangohelper)
|+tools/#工程用到的輔助工具,目前只有一個virtualenv的腳本
注:
- 由于計劃在以后做i18n,所以目前只提供英文界面
- django的錯誤提示是顯示在字段后面,fluxbb的錯誤全部都顯示在表單前面。由于模板沒有調好,所以目前按照fluxbb的方式顯示錯誤,所以錯誤顯示有些不太正常。
- bbcode的輸入框本想做成自適應大小的,不過也調得有些問題,所以現在輸入框的大小固定。
- 文檔… ,感覺好難寫-_-,目前文檔不全(項目中沒有帶任何的文檔),日后補上。
- 應用程序的目錄結構主要查看pinax
- simpleavatar模塊部分代碼來自django-avatar
- 依賴包除用easy_install在線安裝的外,盡量使用zip包的方式附帶在項目中,減少安裝依賴包的困難。
- 遠程部署腳本計劃使用fabric,但fabric本身安裝比較麻煩,所暫未處理。
- 項目最早放在googlecode,不過感覺github的功能更強些,所以移了過去。