V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Allianzcortex
V2EX  ›  分享发现

[Python] [Django] [cortexForum] 一个开源论坛的实现

  •  
  •   Allianzcortex · 2016-03-13 10:47:38 +08:00 · 2043 次点击
    这是一个创建于 3202 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在学习 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

    • TDD-Pytthon web development 是讲解 TDD 非常好的一本书,但是你懂的……,开发人员写测试用例实在太痛苦了……,以后有机会再补上吧……(我知道这是不对的^)

    在整个开发过程中不得不再次感谢 Django 的开发人员为我们提供了如此丰富的资源,让以写 one-line 为荣耀的 Python 也有拿得出来和其他开发语言一比高下的框架,不过 template tags 是什么情况!!!

    前端用的就是 bootstrap 啦,本来想让 @lonelyCheng
    帮忙优化一下的,但他最近在搞 Node.js^^,好吧,论全栈工程师的养成及其他

    在开发过程中没有强制的代码 review 和版本管理,可能在一开始还可以写出不错的代码,但随着进度加快,压力增大,代码的质量只会是悬崖式坠落,能跑起来的代码和能在服务器上稳定运行的代码完全是两个不同的概念。

    自己决定将这个项目作为一个长期维护的对象,接下来在不同的分支中添加不同的功能,比如 Elastic 什么的。
    欢迎大家提出各种 issur 和 PR ,地址在 github
    有问题的话随时通过邮件联系哈: [email protected]

    一些截图如下:
    picture1

    picture2

    upvote 和 downvote 机制
    picture3

    个人页面
    picture4

    3 条回复    2016-03-13 18:46:37 +08:00
    xuwenmang
        1
    xuwenmang  
       2016-03-13 11:04:20 +08:00
    听说 Django 里的控制器叫 View ,而 View 叫 template

    受不了这种毁三观的做法
    strwei
        3
    strwei  
       2016-03-13 18:46:37 +08:00
    1L +1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1163 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.