Django 个人博客教程-00:开篇

520 阅读4分钟

这是我参与更文挑战的第1天,活动详情查看: 更文挑战

为什么写这个教程?

我是一个 django 重度用户,从 django 1.8 至今一直在使用,idcops 是我的另一个 django 项目,它现在也吸引了一部分真实的企业用户。

最近刚好想把 docspace 进行改版,所以,博客教程的项目还是叫 docspace。

自 django1.8 到现在 django3.x,期间开发了这么多程序基本都没有做什么总结。

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

需要有一点 Python 编程语言的基础。

对 Django 已有一定了解的人(因为是进行博客改版,所以,这里着重功能的开发,不会有太多基础内容的阐述)。

博客程序需求分析

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

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

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

  • 标题,这是一篇博文最重要的属性,即使文章内容为空,标题还是要有的是不是;

  • 文章 slug 标题,可选,主要用于URL上面;

  • 文章内容,通常是textfield,用于存放文章内容;

  • 分类和标签,一般都是多对多的关系,就是说,我某篇文章可以同时用于多个分类或者标签;

  • 发布时间和更新时间,社会进步从未停止过,而且发展速度也越来越快,很多东西的迭代速度也是超乎人民的想象,因此,记录下来的内容或许只适用于某一段时期,同时有利于robot抓取,这个后面专门做;

  • 评论数、阅读数、收藏数等等用于一篇文章发布后相关变化的统计。这里值得一提的是:出于能一次性从数据库查询取出想要的数据,所以把这些字段作为文章的一个属性来看;

  • 作者,这个也很重要,文章有谁人发布,版权归谁,谁有资质或责任解释相关疑问;

  • 页面需求基本和文章一致,后面在 django 模型中直接体现吧。

二、博客文章的分类或标签

  • 标签名称,不可为空,类似文章标题一样的存在;

  • 父级标签,它有无父级标签,比如你 django 这个标签的父级标签你可以设置成 python,这个分层级容易被管理和被人类或机器更好的阅读接收到;

  • 标签封面,用于美化页面,直接当成一个标签属性来管理更方便,就像文章评论数,阅读数那样;

  • 图片描述,这里主要是考虑文章的SEO,SEO从来都是很重要的,值得大家特别注意;

  • 文章标签是一个很有用的存在,可以做相关文章推荐,文章SEO关键词等等。

三、博客用户

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

四、博客评论

  • 评论的文章

  • 评论者名称

  • 评论者邮箱

  • 评论者url

  • 评论者内容

  • 评论者用户id

  • 评论者ip、agent、通知等等

五、博客管理后台

  • 文章管理,新建或更新文章的表单,富文本

  • 分类管理,文章分类或标签的管理

  • 评论管理,垃圾评论、评论审核等等

  • 媒体管理,上传的图片或其他文件的管理

  • 用户管理,用户角色,权限等等

  • 链接管理,友情链接或导航菜单的管理

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

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