django练习——博客系统优化
一直准备使用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
二、Bootstrap
Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等。具体的使用方法和案例在Bootstrap中文网(http://www.bootcss.com/)都有非常详细的说明。
Bootstrap 应用实例》(http://ninghao.net/video/665),部分内容是收费的,可以直接百度找到别人分享的资源,看完之后可以基本了解Bootstrap和CSS的使用方法。
三、多说评论
如果没有在多说的官网上配置站点,这里就用默认的五个‘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中的代码:
----------------------------------------------------------------
欢迎大家转载我的文章。
转载请注明:转自古-月
欢迎继续关注我的博客
django练习——博客系统优化的更多相关文章
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...
- Django搭建博客网站(三)
Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用 ...
- Django搭建博客网站(二)
Django搭建自己的博客网站(二) 这里主要讲构建系统数据库Model. Django搭建博客网站(一) model 目前就只提供一个文章model和一个文章分类标签model,在post/mode ...
- Django(博客系统):基于pycharm如何一个django工程下创建多个app
背景:通常我们创建一个django系统时,为了把业务模块划分清楚往往会把一个独立的业务模块放到一个app中,如果多个独立的业务模块就会创建多个app,一般情况下为了更好的管理这些app,会把他们都存放 ...
- Django练习——博客系统小试
在上一篇博客Todolist的基础上(http://blog.csdn.net/hcx25909/article/details/24251427),本周继续进行实践,这次我要搭建一个简单的博客系统. ...
- Django 系列博客(十六)
Django 系列博客(十六) 前言 本篇博客介绍 Django 的 forms 组件. 基本属性介绍 创建 forms 类时,主要涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成 h ...
- Django 系列博客(十四)
Django 系列博客(十四) 前言 本篇博客介绍在 html 中使用 ajax 与后台进行数据交互. 什么是 ajax ajax(Asynchronous Javascript And XML)翻译 ...
- Django 系列博客(十三)
Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数. ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True.当 model ...
- Django 系列博客(十二)
Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询. 聚合查询 语法:aggregate(*args, **kwargs) ...
随机推荐
- 【python进阶】Garbage collection垃圾回收2
前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...
- Python中如何将二维列表转换成一维列表
已知:a = [(4,2,3), (5, 9, 1), (7,8,9)]希望将二维列表转换成一维列表:["4,2,3", "5, 9, 1", "7, ...
- 导出和导入Docker容器
导出容器 如果要导出本地某个容器,可以使用 docker export 命令. $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATU ...
- Jmeter(六)_前置处理器
BeanShell PreProcessor 使用BeanShell在请求进行之前进行操作.语法使用与BeanShell Sampler是一样的.但可使用的内置变量稍有不同 参考示例 Jmeter ...
- 阅读源码(III)
往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> Medium上有一篇文章Why You Don't Deserve That Dream Developer Jo ...
- mysql5.7在centos上安装的完整教程以及相关的“坑”
安装前的准备 Step1: 如果你系统已经有mysql,如一般centos自带mysql5.1系列,那么你需要删除它,先检查一下系统是否自带mysql yum list installed | gre ...
- GDAL C#中文路径,中文属性名称乱码问题
昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...
- windows上安装nodejs,升级npm,安装webpack指南
安装nodejs https://nodejs.org/en/ 安装webpack和其他一些常用的 npm install -g node-gyp webpack coffee-script 监控 w ...
- Dynamics CRM2016 关闭错误报告弹框提示
在之前的版本中错误报告的弹框提示是可以在隐私首选项中设置关闭的,如下图所示 但是在2016中这个设置没了 有人说在右上角的选项中设置,但那个只能是设置个人的无法修改系统级别的.在系统中找了半天还是没有 ...
- 1小时学会JQuery
---------------------------------------------------------------------------------------------------- ...