Django-Based Forum
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cortexForum
.gitignore
LICENSE
README.md
requirements.txt

README.md

cortexForum 的设计理念

The best way to learn is to practice

在学习 Django 的过程中,自己最苦恼的一个问题就是没有一个好的实际项目来帮助人理解。Django的文档从排版到用例都是文档的最佳标准,但哪怕自己做了笔记,当天和一个月后进行巩固,在实际使用的时候还是进退失据。被推荐的如Fairybbs在写的时候还没有 form 表单,还是用 request.POST.get()的方式来取得页面上的数据,而 forum 则是将 request 的 get 和 post 写法分开写在两个 views,增添了很多负担。并且所有的文件都在一个大的 app 里,不符合低耦合的特性。

相比之下 Flask 有 Flask-web development book 作为入门书,有 june 来作为成熟的具体项目帮助深入。

恰好最近在看毕设的有关论文看的头晕眼花心烦乱(:--,所以就有了写一个有 Django 最佳实践的论坛的想法。在写 cortexForum 的过程中,自己尽量实现了以下几点:

  • 在代码中将所用到的文档模块和对应的具体用法进行标志,方便查找

  • 标注中有 SO 的部分说明它很常用,并且 stackoverflow 上有相关的问题(比如query_set() 里的 lookup field)

  • 对于有多种解决方法的部分都在注释里写了出来(比如 objects.filer().updateinstance.save() ,再比如是手写 HTML 还是用crispy-forms/django-bootstrap3 这样的插件)

  • gitbook 的格式作为 wiki,对于 forum 的设计有这样一个总体的概述

如果说是还有什么不足的话:

  • 自己虽然已经尽量按照 Two scopes of Django 的说明来进行代码项目的写法,但还是没有用 CBVS 来精简表达,主要用的还是 FBVS。

前端用的就是 bootstrap ,本来想让 @lonelyCheng帮忙优化一下的,但他最近在搞 Node.js^^。

自己决定将这个项目作为一个长期维护的对象,接下来在不同的分支中添加不同的功能,比如 Elastic 什么的。欢迎大家提出各种 issur 和 PR,有问题的话也可以通过邮件联系哈: iamwanghz@gmail.com

一些截图如下: picture1

picture2

upvote 和 downvote 机制 picture3

个人页面 picture4


安装方法:

  • 对 *nix 系统,请直接执行 source venv/bin/activate 以获得对应的 Python 环境
  • 执行以下命令来安装依赖(适用于 Ubuntu 14.04 LTS):
sudo apt-get install python-dev,mysqlclient-dev,python-mysqldb,libjpeg-dev

  • settings.py 中设置好 mysql 的端口、用户名、密码(demo 中以 root:mysql 来作为例子),并执行
create database cortexForum CHARACTER SET utf8 COLLATE utf8_bin;

创建数据库并设置为 utf-8 编码格式以支持中文

  • 执行以下语句
python manage.py makemigrations

python manage.py migrate
  • 执行python manage.py runserver运行应用