发布一个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的功能更强些,所以移了过去。

发布一个Django的论坛系统LBForum(开源、带演示)》有21个想法

  1. vicalloy 文章作者

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

  2. dengmin

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

  3. vicalloy 文章作者

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

  4. chris

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

  5. vicalloy 文章作者

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

  6. chris

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

  7. vicalloy 文章作者

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

  8. chris

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

  9. timest

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

  10. oserh

    请问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” 静态文件请求不能映射到我的静态文件路径

  11. phenixxx

     

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

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

  12. vicalloy 文章作者

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

评论已关闭。