Django个人博客教程:开篇

为什么写这个教程?

  1. 我是一个django重度用户,从2015年django还在1.8lts时,到现如今已经更新到django3.0。我最大的一个项目就是django-idcops,它现在也吸引了一部分真实的企业用户
  2. 从2012年未毕业开始一直坚持写博客,虽然中途因为某些原因有中断,但一个个人博客站能维持那么多年实属不易(这一块,懂的人都懂,期间认识了很多优秀的博主也是一直坚持写博客的)
  3. 最近刚好想把docspace进行改版(docspace是2018年用django2.x写的博客程序)。所以,新版的django3.0博客教程的项目依旧还是叫“docspace”,之前用“Document”+“Space”拼凑的简称
  4. 自django1.8到现在django3.0,期间开发了这么多程序基本都没有做什么总结。所以,借助此次改版想用一下“费曼学习法”,希望能让自己在django编程这方面的技能得到更好的提升。

这个教程将适合哪些人群?

  1. 需要有一点 Python 编程语言的基础
  2. 对django已有一定了解的人(因为是进行博客改版,所以,这里着重功能的开发,不会有太多基础内容的阐述)

博客程序需求分析

在docspace开发期间,看了网上不少大佬的django个人博客开发教程,都是比较详尽和细致的。

下图是我对博客程序的结构的一些认识,接下的教程将主要围绕下面的分析展开开发工作,开发过程中不保证更需求完全一致。


下面来看看博客程序的需求分析,为什么要这样:

一、博客文章的主要字段组成:

  1. 标题,这是一篇博文最重要的属性,即使文章内容为空,标题还是要有的是不是;
  2. 文章Slug标题,可选,主要用于URL上面;
  3. 文章内容,通常是textfield,用于存放文章内容;
  4. 分类和标签,一般都是多对多的关系,就是说,我某篇文章可以同时用于多个分类或者标签;
  5. 发布时间和更新时间,社会进步从未停止过,而且发展速度也越来越快,很多东西的迭代速度也是超乎人民的想象,因此,记录下来的内容或许只适用于某一段时期,同时有利于robot抓取,这个后面专门做;
  6. 评论数、阅读数、收藏数等等用于一篇文章发布后相关变化的统计,这里值得一提的是:出于能一次性从数据库查询取出想要的数据,所以把这些字段作为文章的一个属性来看;
  7. 作者,这个也很重要,文章有谁人发布,版权归谁,谁有资质或责任解释相关疑问;
  8. 页面需求基本和文章一致,后面在django 模型中直接体现吧。

二、博客文章的分类和标签(这里把一个分类统一当做一个标签来描述):

  1. 标签名称,不可为空,类似文章标题一样的存在;
  2. 父级标签,它有无父级标签,比如你django这个标签的父级标签你可以设置成python,这个分层级容易被管理和被人类或机器更好的阅读接收到;
  3. 标签封面,用于美化页面,直接当成一个标签属性来管理更方便,就像文章评论数,阅读数那样;
  4. 图片描述,这里主要是考虑文章的SEO,SEO从来都是很重要的,值得大家特别注意;
  5. 文章标签是一个很有用的存在,可以做相关文章推荐,文章SEO关键词等等。

三、博客用户

其实对于一个个人博客程序来说,用户一般就只有作者自己。

用户名等等用户常有的属性直接继承django默认的用户再扩展一些例如:role、mobile、website等博客常用字段即可。其他不确定我们后面做个通用的key/value模型来存放

四、博客评论(这是一个比较大的内容模块)

  1. 评论的文章
  2. 评论者名称
  3. 评论者邮箱
  4. 评论者url
  5. 评论者内容
  6. 评论者用户id
  7. 评论者ip、agent、通知等等

五、博客管理后台

  1. 文章管理,新建或更新文章的表单,富文本
  2. 分类管理,文章分类或标签的管理
  3. 评论管理,垃圾评论、评论审核等等
  4. 媒体管理,上传的图片或其他文件的管理
  5. 用户管理,用户角色,权限等等
  6. 链接管理,友情链接或导航菜单的管理

基本上,博客程序分析就到这里,后面边改边说,比如用户登录接入Github第三方登录等等。

这次改版的主要目标是:变更博客前端页面,优化博客SEO。同时,希望能借此机会进一步认识django,能够与大家共同进步。


相关阅读RelatedRead

Django利用xlrd将excel表格数据导入到model数据库中

django-idcops 部署线上生成环境

Django个人博客教程-1:开发环境之编译安装python3.7

Django个人博客教程-1:开发环境

本博启用灰色调 2020年4月4日举行全国性哀悼活动

Django 让用户自动登录

Django博客archives归档页面查询优化

暂无评论添加评论