一直准备使用Django搭建一个个人网站,最近终于开始动手,上周已经完成了基本博客功能的搭建(http://blog.csdn.net/hcx25909/article/details/24601331),不过代码基本是copy的,还是很想掌握具体的实现过程。于是,这几天在之前的基础上继续优化博客的功能和界面,将别人代码中比较好的部分移植到自己的博客当中。主要参考的个人博客系统是:http://hansonsblog.sinaapp.com/,源代码在github上可以下到,在此向Hanson致敬,如有雷同,纯属是我抄袭。

代码托管github地址:https://github.com/huchunxu/dblog

一、概述

之前实现的功能比较简单,界面也不是很美观,如下图所示,其中还有很多问题。

在此基础上进行了很多优化:

(1)使用bootstrap对界面进一步美化,添加了背景图片,调整了整体布局

(2)评论使用了第三方多说评论系统插件,方便其他社交账号的集成

(3)修改博客的数据库位mysql

(4)删除前端添加博客的功能,只能通过后台站点管理添加博客

(5)首页博客内容缩略显示,添加翻页功能

(6)添加博客分类,回到顶部按键,调整侧边栏的显示

先来上一张整体图片:

主要使用的软件和插件版本

(1) Pycharm版本:3.1.2

(2) Django版本:1.4.10
(3) Python版本:2.7.6
(4) Bootstrap:3.0.1
(5) 多说:0.1

二、Bootstrap

        Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark
Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等。具体的使用方法和案例在Bootstrap中文网(http://www.bootcss.com/)都有非常详细的说明。
        作为初学者,可以参考宁浩网站的视频教程《HTML5 与
Bootstrap 应用实例
》(http://ninghao.net/video/665),部分内容是收费的,可以直接百度找到别人分享的资源,看完之后可以基本了解Bootstrap和CSS的使用方法。

三、多说评论

        一开始使用的是Django自带的评论系统,但是配置的比较麻烦,而且界面不是很好看,不方便集成其他的社交账号。从Hanson那里看到了多说,立刻觉得很高大上的感觉,尝试用起来。集成的方法很简单,可以参考多说的官方说明:http://dev.duoshuo.com/python-sdk,需要注意的是, 在settings中要设置宏如下:
      

如果没有在多说的官网上配置站点,这里就用默认的五个‘x’,否则会出错。

四、mysql

数据库使用的底层接口django都已经为我们提供了,所以我们只需要配置好就可以。

mysql的配置方法可以参考《Django使用MySQL数据库》(http://blog.csdn.net/hawk0930/article/details/10070513)。

需要注意的是,在使用数据库之前需要先创建数据库文件,数据库文件的默认存储位置是在/var/lib/mysql目录下。

五、博客功能

1、博客列表内容缩略

在首页的博客列表中,我们不需要每篇博客都显示全部内容,否则会导致首页过长。显示内容略缩略的方法很简单,在显示内容的部分加上truncatechars描述就可以,例如:

这样,每篇博客只显示200个字符,后面的内容会以“...”的方式提示省略,可以点击阅读全文进入查看。

2、回到顶部功能

这个功能时使用了一个小的js程序实现:

对应的css样式:

这样,在博客列表的低端,就出现一个回到顶部的图标,鼠标悬停会反色,点击回到顶端。

3、翻页

翻页使用的是django自带的Paginator插件,参考下面两篇博客:

(1)使用 Paginator 实现分页功能:http://mozillazg.com/2013/01/django-pagination-by-use-paginator.html

     (2)django智能分页函数http://www.jovesky.com/post/214/django-pagination-11/

在html中的代码:

views.py中的代码:

----------------------------------------------------------------

欢迎大家转载我的文章。

转载请注明:转自古-月

http://blog.csdn.net/hcx25909

欢迎继续关注我的博客














django练习——博客系统优化的更多相关文章

  1. Django搭建博客网站(四)

    Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...

  2. Django搭建博客网站(三)

    Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用 ...

  3. Django搭建博客网站(二)

    Django搭建自己的博客网站(二) 这里主要讲构建系统数据库Model. Django搭建博客网站(一) model 目前就只提供一个文章model和一个文章分类标签model,在post/mode ...

  4. Django(博客系统):基于pycharm如何一个django工程下创建多个app

    背景:通常我们创建一个django系统时,为了把业务模块划分清楚往往会把一个独立的业务模块放到一个app中,如果多个独立的业务模块就会创建多个app,一般情况下为了更好的管理这些app,会把他们都存放 ...

  5. Django练习——博客系统小试

    在上一篇博客Todolist的基础上(http://blog.csdn.net/hcx25909/article/details/24251427),本周继续进行实践,这次我要搭建一个简单的博客系统. ...

  6. Django 系列博客(十六)

    Django 系列博客(十六) 前言 本篇博客介绍 Django 的 forms 组件. 基本属性介绍 创建 forms 类时,主要涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成 h ...

  7. Django 系列博客(十四)

    Django 系列博客(十四) 前言 本篇博客介绍在 html 中使用 ajax 与后台进行数据交互. 什么是 ajax ajax(Asynchronous Javascript And XML)翻译 ...

  8. Django 系列博客(十三)

    Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数. ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True.当 model ...

  9. Django 系列博客(十二)

    Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询. 聚合查询 语法:aggregate(*args, **kwargs) ...

随机推荐

  1. Mysql根据一个基库生成其他库与其不同的库升级脚本

    今天研究了一下不同数据库之间如何做同步.弄了一个升级工具类,希望以后还能有所帮助. public class UpgradeDataBase { public static void main(Str ...

  2. 剑指架构师系列-持续集成之Maven+Nexus+Jenkins+git+Spring boot

    1.Nexus与Maven 先说一下这个Maven是什么呢?大家都知道,Java社区发展的非常强大,封装各种功能的Jar包满天飞,那么如何才能方便的引入我们项目,为我所用呢?答案就是Maven,只需要 ...

  3. Go 错误处理

    Go 语言通过内置的错误接口提供了非常简单的错误处理机制. error类型是一个接口类型,这是它的定义: type error interface { Error() string } 我们可以在编码 ...

  4. 给定 n×n 的实数矩阵,每行和每列都是递增的,求这 n^2 个数的中位数。

    #define COL 4 #define ROW 4 int findMedian(int matrix[][COL], int row, int col) { int* arr = new int ...

  5. JAVA Eclipse使用Maven构建web项目详解(SSM框架)

    tips: 启动项目后,welcome-file的链接即为测试用例 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <depen ...

  6. myeclipse中修改maven的默认仓库位置

     1.本地需要安装Maven.这里假设安装在D:\Program Files\apache-maven-2.2.1       2.修改本地maven库的路径:在D:\Program Files\ap ...

  7. Texlive 更新命令

    设置repository tlmgr repository set http://mirror.hust.edu.cn/CTAN/systems/texlive/tlnet 上面的例子使用的是华中科技 ...

  8. Android Multimedia框架总结(二十一)MediaCodec中创建到start过程(到jni部分)

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53386117 我最近正在参加CS ...

  9. springMVC源码分析--AbstractControllerUrlHandlerMapping(六)

    上一篇博客springMVC源码分析--AbstractDetectingUrlHandlerMapping(五)中我们介绍了AbstractDetectingUrlHandlerMapping,其定 ...

  10. linux 最大文件描述符

    Linux对应用程序能打开的的最大文件描述符数量有两个层次的限制:用户级限制和系统级限制. 用户级限制是指目标用户运行的所有进程总共能打开的文件描述符数. 系统级的限制是指所有用户总共能打开的文件描述 ...