发布一个Django的论坛系统LBForum(开源、带演示)

简介

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集成到其他项目也并不会太难。

主要功能

目前功能还比较简单,而且还有些小问题有待修正。

  1. 论坛分类,分版块
  2. 发帖,回帖
  3. BBCode支持
  4. 置顶贴
  5. 使用django admin提供论坛管理功能

用开发服务器把LBForum跑起来

  1. 先把代码down下来。LBForum托管在github上,http://github.com/vicalloy/LBForum 。如果你没有安装git,你可以直接用界面右上方的download
    source功能下载代码。
  2. 运行\scripts\create_lbforum_env.py初始化lbforum的python虚拟环境。该脚本会自动创建一个python的虚拟环境并使用easy_install安装对应的依赖包,同时将一些依赖包解压到对应的目录中。
    注:django使用的是svn版本,所以机器上必须要安装有SVN,不然脚本会运行失败。如果因为由于svn的问题导致脚本运行失败,可以运行lbforum_env.bat进入lbforum环境,手动安装django的svn版本。
  3. 环境初始化好后,运行lbforum_env.bat进入lbforum环境
  4. 运行%mg% syncdb初始化数据库
  5. 运行%mg% runserver启动django开发服务器
  6. 进入admin,创建论坛分类和版块
  7. 进入版块发帖

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的脚本

注:

  1. 由于计划在以后做i18n,所以目前只提供英文界面
  2. django的错误提示是显示在字段后面,fluxbb的错误全部都显示在表单前面。由于模板没有调好,所以目前按照fluxbb的方式显示错误,所以错误显示有些不太正常。
  3. bbcode的输入框本想做成自适应大小的,不过也调得有些问题,所以现在输入框的大小固定。
  4. 文档… ,感觉好难写-_-,目前文档不全(项目中没有带任何的文档),日后补上。
  5. 应用程序的目录结构主要查看pinax
  6. simpleavatar模块部分代码来自django-avatar
  7. 依赖包除用easy_install在线安装的外,尽量使用zip包的方式附带在项目中,减少安装依赖包的困难。
  8. 远程部署脚本计划使用fabric,但fabric本身安装比较麻烦,所暂未处理。
  9. 项目最早放在googlecode,不过感觉github的功能更强些,所以移了过去。

21 Comments

  • Gtalk
    2010年04月29号 - 4:59 pm | Permalink

    请问 LBForum 可以在GAE上部署么?

  • 2010年05月5号 - 11:47 am | Permalink

    不支持,GAE的限制还是比较多的。

  • 2010年05月19号 - 7:19 am | Permalink

    我也做了一个小论坛,现在只能有一个版块,苏州打工网

  • deng ge
    2010年05月26号 - 9:46 am | Permalink

    no linux script?

  • 2010年05月27号 - 10:09 pm | Permalink

    因为我用的是windows,且对linux并不是太熟悉所以只提供了windows下是shell脚本。
    最主要的脚步是create_lbforum_env.py,用来创建lbforum的运行环境。
    lbforum_env.bat 这个脚本只是在进入python virtualenv加设置一环境变量而已。

  • dengmin
    2010年09月20号 - 10:01 pm | Permalink

    请问你的这个论坛用的是在哪里部署的,好像支持django的主机不太好找,还有django怎么展示树呢

  • 2010年09月21号 - 9:51 am | Permalink

    只要主机支持fcgi和python就可以部署django应用。
    这类主机在国外还是很容易找的。
    我用的是 http://webfaction.com/
    树的展示主要还得靠JavaScript和Django的关系不大。

  • 2010年09月23号 - 6:37 pm | Permalink

    我也做了一个论坛
    http://bbs.dztong.com 打算换成django

  • 2010年10月3号 - 11:19 pm | Permalink

    ubuntu + apache + mod_wsgi部署成功 http://www.qqfire.com

  • chris
    2012年03月17号 - 4:36 pm | Permalink

    楼主威武!!我也和你一样不会用Linux,哈哈~还在win下跑django~~~没想到像楼主这样编出开源bbs的人物也和我一样在用win,其实打心里特高兴,能和楼主站在同一个阵营里……楼主有想过开发一套教材吗,专门讲解您的bbs是如何设计使用的详解,用连载方式~~~推广这套BBS~其实我心很痒痒,期待楼主未来能出教程的时候一定要告知我一声哦,绝对捧场~

  • 2012年03月17号 - 6:26 pm | Permalink

    具体用什么操作系统主要看个人习惯。我现在工作用ubuntu,家里用windows。国内的python大牛@limodou也主要用windows。常用的Linux操作还是有必要掌握,因为部署到生产环境的服务器肯定会是*nix系统。
    有想过要写一个Django教程,只是写教程是一件非常花精力的事,一直没有动手。

  • chris
    2012年03月17号 - 7:39 pm | Permalink

    没想到楼主也爱听罗文的江湖路呀~~ 今天算是找到知心人了~20多年来今天第一次看到有人说爱听 ~ ~ 而且还是Django的同僚~哈哈哈~握个手;) 有机会的话也加我豆瓣吧~ http://www.douban.com/people/wangliang6179/

  • chris
    2012年03月17号 - 7:46 pm | Permalink

    嗯,我也赞同楼主所说的,这些年心里也一直装着Linux呢,就等今年把django弄得扎实点后有时间吧~ubuntu都用虚拟机安装好了,就等着哪天开始研究了~~~顺便说一句,江湖路这首歌很经典,可惜看莲花争霸的真是几乎没有一个,握个手~~楼主你说我这种windows专业户要学ubuntu,能推荐一些学习方法么,期待~

  • 2012年03月17号 - 8:43 pm | Permalink

    鸟哥的 Linux 私房菜这本书不错。把其中的“Linux 基础文件”看一遍,对linux有个基础的了解。日后整个linux服务器部署自己的应用。接触的多了,自然就慢慢的熟悉了。

  • chris
    2012年03月17号 - 11:41 pm | Permalink

    谢谢vicalloy~我会从鸟哥私房菜入手的,以后常来你的博客逛逛~如果以后写dj的教程记得第一时间告诉我一声哦~~怕万一不小心错过;)~加油!

  • timest
    2012年03月31号 - 10:24 pm | Permalink

    你好,首先,非常感谢你的开源精神。

    我在git上下载了你的代码,结构和你描写的文档不一样。 看了代码最后更新时间是 7月前,是不是结构变了?应该怎么去部署学习呢?

  • slider
    2012年08月10号 - 8:49 am | Permalink

    登录注册的部分到哪儿了呢

  • 2012年08月10号 - 9:04 am | Permalink

    LBForum是个可重用APP,为方便集成到其他系统因此没有自带登录注册模块。如果你需要一个带登录注册模块的完整论坛可以使用lbforum-site https://github.com/vicalloy/lbforum-site

  • oserh
    2012年11月19号 - 8:22 pm | Permalink

    请问lbforum中您对静态文件的处理是怎样的, github上:
    “# URL prefix for lbforum media — CSS, JavaScript and images. Make sure to use a
    # trailing slash.
    # Examples: “http://foo.com/media/”, “/media/”.”
    这一段没有完善。

    我搭建好后, “GET /lbforum/styles/v2ex/default.css” 静态文件请求不能映射到我的静态文件路径

  • phenixxx
    2013年02月25号 - 3:07 pm | Permalink

     

    运行\scripts\create_lbforum_env.py初始化lbforum的python虚拟环境。

     

    弱弱地问一句,没有找到这个文件呀….

  • 2013年03月4号 - 10:09 am | Permalink

    这篇博客已经有些“过时”了,建议直接看项目里附带的readme

  • Comments are closed.