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