Django论坛程序,无缝整合phpBB3

作者:半瓶墨水   链接:http://www.2maomao.com/blog/django-phpbb3/

首先说一下,无缝整合指的是:
1. Django用户能够不重新登录正常访问论坛发表文章、评论
2. Django和phpBB3的退出、登录操作是一致的

Django 是Python的一套web开发框架,用起来很是爽啊,发芽网就是用它搭建的。

但是由于Django还比较嫩,很多配套的东西都没有开发出来,比如说blog和论坛程序

2007年B-list上面发表了一篇:Where is Django’s blog application?
不过现在Blog程序其实还有些不错的,比如说 Banjo,但是还是功能不够完善,比起Wordpress来说,还有很长的路要走。

论坛程序也差不多,Django站点上有个专门的Wiki页面,比较所有已知的Django论坛程序,比如:
django-forum, counterpoint, snapboard, MyghtyBoard, Sphene, PYBB, Django-ForumBR, django-simpleforum

我差不多都试过,发现其中Sphene, django-forumPYBB成熟度比较高,可以试着吃吃了。

不过,试过就知道,味道还是不够老辣。

好了,废话说的差不多了,如果你想要好论坛,又要享受Django开发,来试试phpBB和Django的结合吧!

————-我们开始吧————

想法
1. 让Django的用户登陆后转到论坛不需要重新登陆,通过一系列的session处理可以做到,这里不细讲了
2. Django上的用户在登陆后,第一次访问论坛的时候,创建对应的phpBB用户
3. 为了保证互相之间的数据同步,论坛不能注册用户、登陆、注销、修改密码、email,必须到Django上进行

步骤1/5:先配置好DjangophpBB
我用的是phpBB3中文版,其中phpBB放在public_html/fayaa/bbs目录下,就像处理Django配置里面static的处理一样,设置.htaccess处理t.fcgi之前把bbs目录滤掉,现在public_html/fayaa目录下的.htaccess是这样的

安装的时候保证phpBB和Django方面有相同的admin用户名和密码

步骤2/5:在Django这边做工作
这里(django-login-for-phpbb),下载django到phpBB认证的文件(svn)

svn checkout http://django-login-for-phpbb.googlecode.com/svn/trunk/ django-login-for-phpbb-read-only

然后解压sessionprofile到Django工程(发芽网)根目录,然后在settings.py里面注册两个东东:
1. 注意一定要放到SessionMiddleware前面,紧靠着
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'fayaa.sessionprofile.middleware.SessionProfileMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',

2.

INSTALLED_APPS = (
...
'fayaa.sessionprofile',

然后生成数据表:python manage.py syncdb

注意:我在sessionprofile下面添加了admin.py,因为Django1.0以后需要这样才能在后台管理数据表
而且在sessionprofile的middleware.py和test.py里面import的地方,都是用的fayaa.xxx这种方式

现在代开浏览器到localhost:8000/admin/页面,找找sessionprofile,看看有没有一条记录呢?
如果有,就可以进行下一步了,否则先查查哪里写错了

步骤3/5
现在Django方面做完了,该到phpBB了
svn下载下

一条评论 发表在“Django论坛程序,无缝整合phpBB3”上

  1. David.D说道:

    😡 折腾