基于FlaskBB自建论坛¶
1 前言¶
虽然论坛是一个听上去有点上年纪的名词。但是我们可能或多或少地都使用过它。无论是找工作时的应届生论坛,还是高校的北大未名BBS等,或是找游戏资源的3DM论坛,这些论坛都在信息交换(吹水)、资源共享(楼主好人)方面给我们的生活带来了便利。
自己搭建一个论坛,邀请好友进来聊天、灌水想想应该是一件有趣的事情。本文将演示如何基于开源的FlaskBB搭建属于自己的论坛。
2 部署FlaskBB论坛¶
FlaskBB是基于Python Flask的开源论坛软件。它的GitHub Repo以及文档给出了较为详细的安装方式。我们首先将它的Repo clone下来。
为了避免影响已有的Python环境。官方建议我们在虚拟环境中,安装包并运行FlaskBB。
我们可以使用virtualenv创建一个虚拟环境并激活。在虚拟环境中,我们切换到FlaskBB文件夹,安装依赖包:
pip install -r requirements.txt
作为可选项,我们可以安装一些便于开发的包(requirements-dev.txt)以及Redis。当然基础的包就能满足运行的需求。
安装完依赖包后,我们需要对FlaskBB进行一些基础的配置(以问答的方式)。我们运行以下代码:
flaskbb makeconfig
里面有不少可选项,如使用Redis,给管理员邮箱发报警邮件等等,可以按需配置。为了简单起见,我都选择了最简易的配置。值得注意的是SERVER_NAME要带上端口号。
配置完后,由于我们没有选择Redis,我们使用的是SQLite来存储数据。我们需要运行以下命令:
flaskbb install
它会要求我们创建管理员账号,包括账号名字,邮箱,密码。值得注意的是,这一步可能会出现Redis URL的报错,我们可以手动的在刚刚生成的flaskbb.cfg中,修改Redis URL为REDIS_URL = "redis://" 最后,我们只需要运行:
flaskbb --config flaskbb.cfg run
我们打开0.0.0.0:5000就能看到论坛已经跑起来了。
3 论坛使用¶
我们的论坛已经初具规模。首先,我们通过login in登录论坛。可以看到论坛有以下几个板块:
- Portal:包括新闻,最近话题以及一些统计量。
- Forum:论坛本身,包括一篇篇帖子
- Memberlist:论坛成员
- Search:搜索
在Portal板块我们可能会看到如下的提示。
我们点击login in(此时应该已经是用户名)旁边的小箭头下拉菜单中的Management。选择Plugins,install Portal (flaskbb-plugin-portal)。
此时,可以看到Portal已经恢复了正常。
我们可以继续体验论坛的功能。我们可以很丝滑地编辑、回贴,整个用户体验和成熟的论坛基本一致。
4 总结¶
可以看到通过FlaskBB,我们已经有了一个水准相当高的论坛雏形。我们只需要在此之上做一些满足自己需求的更改和设计。
整体代码是基于Flask这一轻量级的框架,对此的修改并不算特别复杂。下篇我们将讲讲如何修改代码,让我们的论坛焕然一新。