Geekblog——基于Django框架的博客系统
2014-02-06
Django  /  / 已有5053人围观

GeekBlog是一个基于Django Web框架的博客系统,它包含了目前主流博客的所有基本功能。GeekBlog的内容管理后台基于Django本身的admin系统实现,内容展示页面则是在Django框架基础上开发实现。数据库采用Mysql+MongoDB的解决方案,系统基于uWSGI+Nginx+Django的架构搭建运行。

下面大概讲一下GeekBlog的产生历程:

一、一个想法引发的项目

去年年初的时候突然想搭建一个个人博客,用来记录和分享自己的一些想法。最初是想随大流,使用wordpress搭建一个博客,毕竟wordpress是现今功能最完善,使用者最多的博客系统,而且用户量很大。于是,自己动手在自己的机器上搭建了一个wordpress博客,但是后来发现,由于wordpress使用PHP开发实现,之后的涉及到代码层面的个性化定制对于我来说显得比较困难(本人之前没有使用过PHP,同时比较懒。。),于是就想使用自己比较熟悉的Python和Django自己写一个博客系统。

二、走走停停的开发进度

2013年2月初的时候开始有想法自己写一个Django Blog系统,当时还在成都上班,所以只能在晚上和星期天抽时间开发。刚开始的时候热情比较高,大概花了一个月的时间将博客的架构搭好,实现了管理后台的大部分功能(基于Django Admin实现,比较容易)。

进入三月之后,天气开始转暖,当时还在成都的我喜欢星期天的时候出去漫无目的的瞎转,爬爬山,逛逛古镇什么的;再加上当时工作忙了起来,所以之后的很长一段时间里Blog项目基本没什么进度,最多偶尔发现一两个不足的地方,花时间改改。这种状态一直持续到我准备离职之前。。。。

三、辞职后的爆发

去年11月份的时候感觉工作有点儿累了,想离职出去旅行一段时间。11月中旬提出了离职申请,到了12月20号才算正式离职。之后先是花了6天时间骑车回家,在家待了两三天,然后去北京看老婆。

老婆平时上班,我在家无聊,看看北京阴冷的天气又不想出去转,于是便决定继续写我的Blog项目。由于没带电脑,所以先花了2天时间在老婆的Windows机器上搭建了Python & Django开发环境,之前没有在Windows上搭建过环境,花费的时间比较长。。辞职后没有其他事情,也没人打扰,开发效率超高,大概花了不到一个月的时间将GeekBlog的第一个版本开发完成。开发日志如下:

Version 0.9 (2014-01-15)

    * Implete most of geek blog's features, include admin site & blog site.

    * Add django ueditor plugin, which is an open source js rich editor from baidu.

    * Add duoshuo comment plugin.

    * Adjust the css style of admin site and blog site.

Version 1.0 (2014-01-22)

    * Implete archive page and friend link page.

    * Implete login required and enabled comment features.

    * Add icon_url field in Link model to save website favicon icon.

    * Add search box in sidebar and implete search article feature.

    * Add newest comments in side bar.

    * Fix bugs in geekblog project.

    * Fix bugs in duoshuo template tag and implete sync duoshuo comment command.

Version 1.1 (2014-02-13)

    * Fix bugs in ueditor, blog css styles and django ALLOWED_HOSTS settings.

    * Add jQuery ColorBox (A lightweight customizable lightbox plugin for jQuery).

Version 1.2 (2014-07-11)

        * Update UEditor version to 1.4.3.

        * Fix some bugs and remove persional infos from project settings.

Version 1.3 (2014-07-27)

        * Change url defination of article detail page.

        * Update about page and translation files.

        * Fix bugs in project(permission of files & syntax highlighter plugin).

Version 1.3.1 (2014-08-03)

        * Update django version from 1.5.2 to 1.6.5 to fix save model bugs.

        * Fix bug when change order of articles.

        * Fix some bugs after updating the version of django.

    四、GeekBlog介绍

1、后台登陆页面

2、后台首页页面

3、后台列表页面

4、博客首页

5、详情页面

6、归档页面

7、链接页面

五、部署GeekBlog

1、域名

降龙使用的域名xianglong.me是去年1月份在Godaddy上申请的,买了两年,2015年到期。之前一直放置在那里没用,所以一直也没有去备案;现在准备使用GeekBlog搭建自己的博客,于是放置一年的域名终于派上用场了。。。。

2、服务器

刚开始的时候服务器想使用日本的樱花VPS或者Linode,原因比较简单:国外的服务器不需要备案,可以省好多的事情,而且这两个服务器评价还不错,访问速度挺快。但是。。后来想想,博客之后的主要访问者都是国内的,不备案的话在国内也有诸多限制(好吧,备案之后的限制也不少。。)。。最终,我还是决定选一个国内的云服务器,国内目前最好的个人觉得就数阿里云了,不过就是有些小贵,最低的配置一年也要600多大洋,没办法。。。。

3、DNS解析

本站的域名解析使用的是DNSPod,DNSPod算是国内最稳定和最安全的域名解析服务提供商,使用方法见:DNSPod使用帮助 和 DNSPod域名解析管理图文教程(以GoDaddy为例)

六、其他的事情

现在为止,自己的博客基本上算是正常上线了。当然,还有很多其他的杂事儿,比如:博客后期的Bug Fix和样式调整、域名备案什么的(最麻烦的)。。。。革命尚未成功,同志仍需努力,洗洗先睡了。。。。


更新(2014-08-20):本博客的代码已经放在Github上,地址:GeekBlog

本文地址:http://xianglong.me/article/django-based-blog-geekblog/

特别声明:本站文章,如非注明,皆为降龙原创。转载需注明本文链接并保证链接可用。