为什么写这个教程?
我是一个 django 重度用户,从 django 1.8 至今一直在使用,idcops 是我的另一个 django 项目,它现在也吸引了一部分真实的企业用户。
最近刚好想把 docspace 进行改版,所以,博客教程的项目还是叫 docspace。
自 django1.8 到现在 django3.x,期间开发了这么多程序基本都没有做什么总结。
这个教程将适合哪些人群?
需要有一点 Python 编程语言的基础。
对 Django 已有一定了解的人(因为是进行博客改版,所以,这里着重功能的开发,不会有太多基础内容的阐述)。
博客程序需求分析
下图是我对博客程序的结构的一些认识,接下的教程将主要围绕下面的分析展开开发工作,开发过程中不保证跟需求完全一致。
下面来看看博客程序的需求分析,为什么要这样:
一、博客文章的主要字段组成
- 标题,这是一篇博文最重要的属性,即使文章内容为空,标题还是要有的是不是;
- 文章 slug 标题,可选,主要用于URL上面;
- 文章内容,通常是textfield,用于存放文章内容;
- 分类和标签,一般都是多对多的关系,就是说,我某篇文章可以同时用于多个分类或者标签;
- 发布时间和更新时间,社会进步从未停止过,而且发展速度也越来越快,很多东西的迭代速度也是超乎人民的想象,因此,记录下来的内容或许只适用于某一段时期,同时有利于robot抓取,这个后面专门做;
- 评论数、阅读数、收藏数等等用于一篇文章发布后相关变化的统计。这里值得一提的是:出于能一次性从数据库查询取出想要的数据,所以把这些字段作为文章的一个属性来看;
- 作者,这个也很重要,文章有谁人发布,版权归谁,谁有资质或责任解释相关疑问;
- 页面需求基本和文章一致,后面在 django 模型中直接体现吧。
二、博客文章的分类或标签
- 标签名称,不可为空,类似文章标题一样的存在;
- 父级标签,它有无父级标签,比如你 django 这个标签的父级标签你可以设置成 python,这个分层级容易被管理和被人类或机器更好的阅读接收到;
- 标签封面,用于美化页面,直接当成一个标签属性来管理更方便,就像文章评论数,阅读数那样;
- 图片描述,这里主要是考虑文章的SEO,SEO从来都是很重要的,值得大家特别注意;
三、博客用户
用户名等等用户常有的属性直接继承 django 默认的用户再扩展一些例如:role、mobile、website 等博客常用字段即可。其他不确定我们后面做个通用的key/value模型来存放。
四、博客评论
- 评论的文章
- 评论者名称
- 评论者邮箱
- 评论者url
- 评论者内容
- 评论者用户id
- 评论者ip、agent、通知等等
五、博客管理后台
- 文章管理,新建或更新文章的表单,富文本
- 分类管理,文章分类或标签的管理
- 评论管理,垃圾评论、评论审核等等
- 媒体管理,上传的图片或其他文件的管理
- 用户管理,用户角色,权限等等
- 链接管理,友情链接或导航菜单的管理
基本上,博客程序分析就到这里,后面若有改动另说,比如用户登录接入 Github 第三方登录等等。
这次改版的主要目标是:变更博客前端页面,优化博客SEO。同时,借此机会进一步认识 django,希望能够与大家共同进步。