点点寒彬
积一时之跬步,臻千里之遥程,烙成功之印记
展开
-
从零开始写博客系统——权限校验
背景如果读者按照前面的文章认真的从头到尾码了代码并且能正常运行,那么其实已经是一个简易的博客系统了,但是这个简易的博客系统还有最后一个问题,那就是我们的新增,修改接口是不能被人随便调用的,否则别人任意的写数据,修改你的文章,那么这个系统也就失去了价值,因此本文作为博客系统后台的一个收尾,要把这些基本的鉴权加上。设计思路鉴权的思路其实很简单,说到底就是这个请求带有一个别人不知道,只有你知道的东西到了服务器,那么服务器就允许这笔请求运行下去,否则就不允许运行。所有的鉴权,都是这个原理。那么基于上面的原理原创 2022-05-16 22:16:06 · 256 阅读 · 0 评论 -
从零开始写博客——数据持久化(文件)
背景前面的文章,我们写了我们的博客系统,也对我们的博客系统进行了测试,基本上已经有了一个博客系统的雏形,但是整个系统有一个问题 ,那就是我们的数据是在内存中保存的,如果我们把服务停掉了,那么我们新增修改的数据就全部没有了,这样的系统无疑是没用的。为了解决这个问题,我们要对数据进行持久化,也就是我们的数据不仅仅在内存中存在,也需要在磁盘中存储这部分数据。数据持久化的方案一般就是两种,文件存储和数据库的方式存储数据。本文我们介绍文件的方式存储。设计思路文件存储的方式其实就是把内存中的文件在磁盘中存储一原创 2022-05-10 23:14:52 · 270 阅读 · 0 评论 -
从零开始写博客系统——测试我们的代码(接口测试)
背景上文我们介绍了如何对我们的代码进行单元测试,本文我们来介绍接口测试。相对于单元测试,接口测试属于一个更上层的测试,接口测试主要关注的是接口的输入和输出,并不关心代码内部运行的逻辑。在实际的项目中,接口测试也是非常重要的,由于接口测试在实际的工作中非常常见。接口测试前的准备基于我们现在的框架,我们所有的接口全部都写在app.py这个文件中,相比于单元测试,接口测试需要把服务运行起来。我们进行接口测试的时候,同样使用unittest进行测试用例的归档。发起接口测试有非常多的办法,我们的服务是一原创 2022-05-08 23:06:52 · 360 阅读 · 0 评论 -
从零开始写博客系统——测试我们的代码(单元测试)
背景验证自己写的代码,是一项基本功。我们必须要保证我们的代码运行逻辑没有问题,才能发布代码,因此在本文,我们学习如何测试我们的代码。测试的类别我们的后台代码可以使用单元测试和接口测试来覆盖。所谓单元测试,就是直接测试我们的代码逻辑,而不需要启动服务。而接口测试,则是把我们的服务启动后,调用接口检查接口的返回值是否符合预期。我们这里测试的时候选用的是Python默认的unittest框架,这个框架用来做基础的测试已经足够了。单元测试具体的定义就请自己进行搜索。我们需要测试的对象,其实就是两个原创 2022-05-08 00:02:18 · 320 阅读 · 0 评论 -
从零开始写博客系统——查询分类和标签
背景在前面的文章中,我们已经把博客的主要接口已经写好了,在一般的博客系统中,还会有按分类查询和按照标签查询的需求。本文我们来执行这部分功能的开发。分析在开始开发之前我们先要对功能做一下分析,在我们定义的数据结构里面。分类这个字段是一个字符串,标签是一个数组。也就是说每篇文章只有一个分类,但是会有多个标签。做完了上面分析之后,就可以得出我们开发的逻辑了,对于按分类查询的需求,我们首先要有一个接口可以查询到所有分类,然后还要有一个接口查询某个分类下的所有文章。对于标签查询的需求也是类似,也需要一个查询原创 2022-04-30 20:40:30 · 741 阅读 · 0 评论 -
从零开始写博客系统——新增查询修改
背景前面我们搭建了博客系统,并且使用模拟数据写了一个查询博客列表的接口。本文我们继续博客系统。业务场景进入一个博客系统,除了展示列表之外,还要能够查询博客正文的明细。作为博客的博主,还需要能够新增文章和修改文章。代码调整由于没有使用数据库,我们的数据暂时会放在内存中。因此要对原来的代码结构做一下调整。Articles类在初始化的时候,就加载data.py中的数据,而不是在查询列表的时候再加载数据。因此在__init__中添加初始化代码。article.pyclass Articles(原创 2022-04-26 23:07:57 · 851 阅读 · 0 评论 -
从零开始写博客系统——获取博客列表
开始从现在开始,我们就要开始进行后台的开发了,首先我们要用Flask开启我们的第一个接口。参考大部分博客的情况,打开博客首页的时候都会需要展示博客的列表。因此我们的第一个后台接口,就是这个博客列表。第一个接口我们在环境的根目录下新建一个文件:app.py 在这个文件中写入下面的信息。from flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return "Hello World!"然后到终端原创 2022-04-25 22:40:24 · 957 阅读 · 0 评论 -
从零开始写博客系统——环境搭建
环境相关内容关于Python的安装,环境变量等配置这里就不单独出文章了,网上有大量的文章可以参考。我使用的Mac电脑,使用Windows也是同样可以的。只不过某些配置可能略有差异。$ python3 -VPython 3.6.6我的Python版本如上,我们的博客不会涉及到很复杂的代码,因此版本向上或者向下都是可以的。搭建环境首先找一个文件夹,打开终端进入到这个文件夹,执行命令python3 -m venv blog此时在当前目录下会生成一个blog的文件夹。同时venv命令会给我们创原创 2022-04-24 22:09:19 · 1048 阅读 · 0 评论 -
从零开始写博客系统——开篇
背景我从2015年底开始慢慢的学习编码相关的知识。在这个博客我把自己学习的记录全部都记了下来,这么多年过去了,版本不停的在更替,当年的那个系列确实已经没啥参考意义了,并且受限于当时的水平,写出来的东西也没啥价值,甚至在某些时候会误导初学者,因此决定重新写一下这个系列的内容,如果可以的话,也配套录制一些视频,方便后来人学习。需要有那些基础不能说完全零基础,完全没有基础很难上来就写一个博客系统,如果读者属于零基础,那么建议去把Python的基本语法都学习一下。阅读本系列的读者至少对于Python的基础语原创 2022-04-23 11:48:09 · 1325 阅读 · 0 评论