代码拉取完成,页面将自动刷新
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>用hexo搭建一个自己的博客</title>
<link href="%E7%94%A8hexo%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/"/>
<url>%E7%94%A8hexo%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/</url>
<content type="html"><![CDATA[<h1 id="系列文章目录"><a class="anchor" href="#系列文章目录">#</a> 系列文章目录</h1><p></p><ul class="toc"><li><a href="#%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E7%9B%AE%E5%BD%95">系列文章目录</a></li><li><a href="#%E5%89%8D%E8%A8%80">前言</a></li><li><a href="#%E4%B8%80-hexo%E6%98%AF%E4%BB%80%E4%B9%88">一、Hexo是什么?</a></li><li><a href="#%E4%BA%8C-%E5%AE%89%E8%A3%85hexo">二、安装Hexo</a><ul><li><a href="#1%E5%AE%89%E8%A3%85nodejs">1.安装node.JS</a><ul><li><a href="#1%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85%E5%8C%85">1.下载安装包</a></li><li><a href="#2-%E5%AE%89%E8%A3%85">2、安装</a></li><li><a href="#3-%E9%85%8D%E7%BD%AEnpm%E5%9C%A8%E5%AE%89%E8%A3%85%E5%85%A8%E5%B1%80%E6%A8%A1%E5%9D%97%E6%97%B6%E7%9A%84%E8%B7%AF%E5%BE%84%E5%92%8C%E7%BC%93%E5%AD%98cache%E7%9A%84%E8%B7%AF%E5%BE%84">3、配置npm在安装全局模块时的路径和缓存cache的路径</a></li><li><a href="#4%E6%B5%8B%E8%AF%95">4.测试</a></li><li><a href="#5%E5%AE%89%E8%A3%85%E5%B7%B2%E5%AE%8C%E6%88%90">5.安装已完成</a></li></ul></li><li><a href="#2npm%E9%85%8D%E7%BD%AE">2.npm配置</a></li></ul></li><li><a href="#%E4%B8%89-%E5%BC%80%E5%A7%8B%E6%90%AD%E5%BB%BAhexo">三、开始搭建Hexo</a><ul><li><a href="#1%E5%88%9B%E5%BB%BA%E6%9C%AC%E5%9C%B0hexo%E5%8D%9A%E5%AE%A2">1.创建本地hexo博客</a></li><li><a href="#2github%E4%B8%AD%E5%8D%9A%E5%AE%A2">2.github中博客</a></li><li><a href="#3gitee%E4%B8%AD%E5%8D%9A%E5%AE%A2">3.gitee中博客</a></li></ul></li><li><a href="#3%E6%9B%B4%E6%94%B9%E4%B8%BB%E9%A2%98">3.更改主题</a></li><li><a href="#%E6%80%BB%E7%BB%93">总结</a></li></ul>(文章目录)<p></p><h1 id="前言"><a class="anchor" href="#前言">#</a> 前言</h1><p><img data-src="https://img-blog.csdnimg.cn/20201022152856330.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>分享搭建 hexo 个人博客的过程<br>参考文档链接在 总结模块中</p><h1 id="一-hexo是什么"><a class="anchor" href="#一-hexo是什么">#</a> 一、Hexo 是什么?</h1><p>Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。即把用户的 markdown 文件,按照指定的主题解析成静态网页。</p><h1 id="二-安装hexo"><a class="anchor" href="#二-安装hexo">#</a> 二、安装 Hexo</h1><p>安装 Hexo 钱需要一些环境依赖,接下来我们就来一步一步安装</p><h2 id="1安装nodejs"><a class="anchor" href="#1安装nodejs">#</a> 1. 安装 node.JS</h2><h3 id="1下载安装包"><a class="anchor" href="#1下载安装包">#</a> 1. 下载安装包</h3><p>Node.js 官方网站下载:<span class="exturl" data-url="aHR0cHM6Ly9ub2RlanMub3JnL2VuLw==">https://nodejs.org/en/</span><span class="exturl" data-url="aHR0cHM6Ly9ub2RlanMub3JnL2VuLw==">node.js 官网</span><br>选择操作系统对应的包:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022155931920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>下载完成,安装包如下:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160155165.png#pic_center" alt="在这里插入图片描述"></p><h3 id="2-安装"><a class="anchor" href="#2-安装">#</a> 2、安装</h3><p>打开安装,傻瓜式下一步即可:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160202461.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201022160218388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>选择安装位置,我这里装在 D 盘下:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160228674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201022160240285.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201022160246205.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201022160351984.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201022160358528.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>安装成功,文件夹结构如下,并在上面安装过程中已自动配置了环境变量和安装好了 npm 包,此时可以执行 node -v 和 npm -v 分别查看 node 和 npm 的版本号:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160406245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h3 id="3-配置npm在安装全局模块时的路径和缓存cache的路径"><a class="anchor" href="#3-配置npm在安装全局模块时的路径和缓存cache的路径">#</a> 3、配置 npm 在安装全局模块时的路径和缓存 cache 的路径</h3><p>因为在执行例如 <code>npm install webpack -g</code> 等命令全局安装的时候,默认会将模块安装在 C:\Users\ 用户名 \AppData\Roaming 路径下的 npm 和 npm_cache 中,不方便管理且占用 C 盘空间,如下图所示:<br><img data-src="https://img-blog.csdnimg.cn/20201022160446689.png#pic_center" alt="在这里插入图片描述"></p><p>所以这里配置自定义的全局模块安装目录,在 node.js 安装目录下新建两个文件夹 node_global 和 node_cache,然后在 cmd 命令下执行如下两个命令:<br> <code>npm config set prefix "D:\Program Files\nodejs\node_global"</code> <br> <code>npm config set cache "D:\Program Files\nodejs\node_cache"</code> <br><img data-src="https://img-blog.csdnimg.cn/20201022160455508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>执行成功。然后在环境变量 -> 系统变量中新建一个变量名为</p><blockquote><p>“NODE_PATH”</p></blockquote><p>, 值为</p><blockquote><p>“D:\Program Files\nodejs\node_modules”</p></blockquote><p>,如下图:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160550279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>最后编辑用户变量里的 Path,将相应 npm 的路径改为:</p><blockquote><p>D:\Program Files\nodejs\node_global</p></blockquote><p>,如下:<br>更改前:</p><p><img data-src="https://img-blog.csdnimg.cn/20201022160557678.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>更改后:<br><img data-src="https://img-blog.csdnimg.cn/20201022160604671.png#pic_center" alt="在这里插入图片描述"></p><p>配置完成。</p><h3 id="4测试"><a class="anchor" href="#4测试">#</a> 4. 测试</h3><p>安装完成后可以使用 cmd(win+r 然后输入 cmd 进入)测试下是否安装成功。<br>方法:在 cmd 下输入 <code>node -v</code> ,出现下图版本提示就是完成了 NodeJS 的安装。<br><img data-src="https://img-blog.csdnimg.cn/20201022160956465.png#pic_center" alt="在这里插入图片描述"></p><h3 id="5安装已完成"><a class="anchor" href="#5安装已完成">#</a> 5. 安装已完成</h3><p>常规 NodeJS 的搭建到现在为止已经完成了。</p><h2 id="2npm配置"><a class="anchor" href="#2npm配置">#</a> 2.npm 配置</h2><p>6、npm 配置<br> npm 作为一个 NodeJS 的模块管理,很有必要列出一些:<br>①、模块路径、cache 路径<br>先配置 npm 的全局模块的存放路径以及 cache 的路径,<br>例如希望将以上两个文件夹放在 NodeJS 的主目录下,便在 NodeJs 下建立 "node_global" 及 "node_cache" 两个文件夹。如下图<br><img data-src="https://img-blog.csdnimg.cn/20201022161140713.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>②、使用 cmd 命令进行配置<br>启动 cmd,输入</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">npm</span> config <span class="token builtin class-name">set</span> prefix <span class="token string">"H:<span class="token entity" title="\n">\n</span>odejs<span class="token entity" title="\n">\n</span>ode_global"</span></pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">npm</span> config <span class="token builtin class-name">set</span> cache <span class="token string">"H:<span class="token entity" title="\n">\n</span>odejs<span class="token entity" title="\n">\n</span>ode_cache"</span></pre></td></tr></tbody></table></figure><p>如果不进行这一步设置,npm 的全局安装包,将不会在 node 安装文件夹里。<br>如果这个步骤出现错误,如:operation not permitted, mkdir 'C:\Program Files\nodejs',请使用管理员身份打开 cmd 命令行。<br>③、测试<br>现在我们来装个模块试试,<br>在 cmd 命令行里面,输入 “ <code>npm install express -g</code> ”(“-g” 这个参数意思是装到 global 目录下,也就是上面说设置的 “H:\nodejs\node_global” 里面。)。<br>④、查看环境变量<br><img data-src="https://img-blog.csdnimg.cn/2020102216120689.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201022161215478.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>⑤、配置 node_path<br> 进入环境变量对话框,在系统变量下新建 "NODE_PATH",输入” <code>H:\nodejs\node_global\node_modules“</code> 。(ps:这一步相当关键。)<br>2014.4.19 新增:由于改变了 module 的默认地址,所以上面的用户变量都要跟着改变一下(用户变量 "PATH" 修改为 “H:\nodejs\node_global\”),要不使用 module 的时候会导致输入命令出现 “xxx 不是内部或外部命令,也不是可运行的程序或批处理文件” 这个错误。</p><p>8、安装淘宝 npm(cnpm)<br>(1) 输入以下命令</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">npm</span> <span class="token function">install</span> -g cnpm --registry <span class="token operator">=</span> https://registry.npm.taobao.org</pre></td></tr></tbody></table></figure><p>(2) 添加系统变量 path 的内容<br> 因为 cnpm 会被安装到 H:nodejs\node_global 下,而系统变量 path 并未包含该路径。在系统变量 path 下添加该路径即可正常使用 cnpm。<br>(3) 输入 <code>cnpm -v</code> 命令,查看结果</p><p><img data-src="https://img-blog.csdnimg.cn/20201022161344956.png#pic_center" alt="在这里插入图片描述"><br>测试 cnpm</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>cnpm -v</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/2020102216190448.png#pic_center" alt="在这里插入图片描述"></p><h1 id="三-开始搭建hexo"><a class="anchor" href="#三-开始搭建hexo">#</a> 三、开始搭建 Hexo</h1><h2 id="1创建本地hexo博客"><a class="anchor" href="#1创建本地hexo博客">#</a> 1. 创建本地 hexo 博客</h2><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>cnpm <span class="token function">install</span> -g hexo-cli</pre></td></tr></tbody></table></figure><p>全局安装框架<br><img data-src="https://img-blog.csdnimg.cn/20201022162222991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>验证</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo -v</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162237645.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>安装完成、<br>创建项目目录空文件夹 testblog<br> 初始化 hexo</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo init</pre></td></tr></tbody></table></figure><p>需要等待一段时间<br>初始化成功<br><img data-src="https://img-blog.csdnimg.cn/202010221622502.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">dir</span></pre></td></tr></tbody></table></figure><p>查看生成的文件<br><img data-src="https://img-blog.csdnimg.cn/20201022162257710.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>启动 hexo</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo s</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162319529.png#pic_center" alt="在这里插入图片描述"></p><p>启动成功<br><img data-src="https://img-blog.csdnimg.cn/20201022162325796.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>先断开<br><img data-src="https://img-blog.csdnimg.cn/20201022162332362.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201022162337591.png#pic_center" alt="在这里插入图片描述"><br>创建我的第一篇博客文章:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo n <span class="token string">"我的第一篇博客文章"</span></pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162452107.png#pic_center" alt="在这里插入图片描述"></p><p>查看文章</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token builtin class-name">cd</span> source/_posts/</pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">dir</span></pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/2020102216260614.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>编写博客内容<br><img data-src="https://img-blog.csdnimg.cn/20201022162613918.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>回退目录</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>cd<span class="token punctuation">..</span></pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>cd<span class="token punctuation">..</span></pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162633584.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>清理博客</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo clean</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162710893.png#pic_center" alt="在这里插入图片描述"></p><p>生成博客</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo g</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162721268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>重新启动</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo s</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162734122.png#pic_center" alt="在这里插入图片描述"></p><p>新文章生成:<br><img data-src="https://img-blog.csdnimg.cn/20201022162742689.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="2github中博客"><a class="anchor" href="#2github中博客">#</a> 2.github 中博客</h2><p>github<br> 创建一个仓库</p><p><img data-src="https://img-blog.csdnimg.cn/20201022162912392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201022162918660.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>用户名.github.io 一定要是这样的格式否则会报错<br><strong> config.yml</strong><br> 中修改</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>deploy:</pre></td></tr><tr><td data-num="2"></td><td><pre> type: <span class="token string">'git'</span> </pre></td></tr><tr><td data-num="3"></td><td><pre> repo: https://github.com/ppxpython/ppxpython.github.io.git </pre></td></tr><tr><td data-num="4"></td><td><pre> branch: master</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022162958121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo clean</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163010929.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo g</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163020688.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo d</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163037507.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>刷新查看仓库<br><img data-src="https://img-blog.csdnimg.cn/20201022163043727.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>打开网址:<br><a href="https://ppxpython.github.io/">https://ppxpython.github.io/</a></p><p><img data-src="https://img-blog.csdnimg.cn/20201022163051921.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="3gitee中博客"><a class="anchor" href="#3gitee中博客">#</a> 3.gitee 中博客</h2><p>在 gitee 上创建一个仓库</p><p><img data-src="https://img-blog.csdnimg.cn/20201022163300166.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>安装工具</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>cnpm <span class="token function">install</span> --save hexo-deployer-git</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163316359.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">dir</span></pre></td></tr></tbody></table></figure><p>查看<br><img data-src="https://img-blog.csdnimg.cn/20201022163327454.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>需要设置<strong> config.yml</strong> 文件<br>打开文件到最下面更改</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token comment"># Deployment</span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token comment">## Docs: https://hexo.io/docs/one-command-deployment</span></pre></td></tr><tr><td data-num="3"></td><td><pre>deploy:</pre></td></tr><tr><td data-num="4"></td><td><pre> type: <span class="token string">'git'</span> </pre></td></tr><tr><td data-num="5"></td><td><pre> repo: https://gitee.com/ppxpython/testblog.git </pre></td></tr><tr><td data-num="6"></td><td><pre> bronch: master</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163413621.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>没有引号都没关系<br>部署远端</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo d</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163428812.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>成功</p><p><img data-src="https://img-blog.csdnimg.cn/20201022163436449.png#pic_center" alt="在这里插入图片描述"></p><p>刷新 gitee 显示代码:<br><img data-src="https://img-blog.csdnimg.cn/20201022163445215.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>点击:<br><img data-src="https://img-blog.csdnimg.cn/20201022163452430.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>显示:<br><img data-src="https://img-blog.csdnimg.cn/2020102216345846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>启动成功:<br><img data-src="https://img-blog.csdnimg.cn/20201022163504245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>网页:</p><p><img data-src="https://img-blog.csdnimg.cn/2020102216351173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>发现没有样式,不要着急,更改配置文件:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>url: https://ppxpython.gitee.io/testblog</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/202010221635425.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo clean</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163547650.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo d</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163555372.png#pic_center" alt="在这里插入图片描述"></p><p>在 gitee 上查看更新<br><img data-src="https://img-blog.csdnimg.cn/20201022163608279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="3更改主题"><a class="anchor" href="#3更改主题">#</a> 3. 更改主题</h1><p>下载主题:<br>选择自己喜欢的主题</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">git</span> clone https://github.com/ShanaMaid/hexo-theme-shana.git themes/ShanaMaid</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163753909.png#pic_center" alt="在这里插入图片描述"></p><p>修改配置文件<br><img data-src="https://img-blog.csdnimg.cn/20201022163805787.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo clean</pre></td></tr></tbody></table></figure><p>本地查看<br> hexo s<br><img data-src="https://img-blog.csdnimg.cn/20201022163823260.png#pic_center" alt="在这里插入图片描述"></p><p>效果:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>http://localhost:4000/easyblog/</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201022163845843.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>hexo d</pre></td></tr></tbody></table></figure><p>部署上去<br><img data-src="https://img-blog.csdnimg.cn/20201022163909953.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>在 gitee 上更新一下<br><img data-src="https://img-blog.csdnimg.cn/20201022163919206.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>部署成功,点击网址,查看我的博客<br>最后附上 <a href="https://ppxpython.github.io/">我的博客</a>:<br><a href="https://ppxpython.github.io/">https://ppxpython.github.io/</a></p><h1 id="总结"><a class="anchor" href="#总结">#</a> 总结</h1><p>参照的链接这里附上:<br><span class="exturl" data-url="aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FudG1hL2FydGljbGUvZGV0YWlscy84NjEwNDA2OA==">Node.js 安装链接</span></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
</entry>
<entry>
<title>01postman学习</title>
<link href="software-test/test-tools/api-testing2/postman/01postman%E5%AD%A6%E4%B9%A0/"/>
<url>software-test/test-tools/api-testing2/postman/01postman%E5%AD%A6%E4%B9%A0/</url>
<content type="html"><![CDATA[<h1 id="系列文章目录"><a class="anchor" href="#系列文章目录">#</a> 系列文章目录</h1><p></p><ul class="toc"><li><a href="#%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E7%9B%AE%E5%BD%95">系列文章目录</a></li><li><a href="#%E5%89%8D%E8%A8%80">前言</a></li><li><a href="#%E4%B8%80-postman%E6%98%AF%E4%BB%80%E4%B9%88">一、postman是什么?</a></li><li><a href="#%E4%BA%8C-%E6%8E%A5%E5%8F%A3%E6%98%AF%E4%BB%80%E4%B9%88">二、 接口是什么?</a></li><li><a href="#%E4%B8%89-%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E5%92%8C%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E7%9A%84%E7%9B%AE%E7%9A%84">三、 接口测试和接口测试的目的</a><ul><li><a href="#1%E4%BB%80%E4%B9%88%E6%98%AF%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95">1.什么是接口测试</a></li><li><a href="#2%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E8%BF%9B%E8%A1%8C%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95">2.为什么要进行接口测试</a></li><li><a href="#3%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E9%87%8D%E7%82%B9">3.接口测试重点</a></li><li><a href="#4%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E5%88%86%E7%B1%BB">4.接口测试分类</a></li></ul></li><li><a href="#%E5%9B%9B-postman%E8%BF%9B%E8%A1%8C%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95">四、postman进行接口测试</a><ul><li><a href="#1http%E7%9F%A5%E8%AF%86">1.HTTP知识</a></li><li><a href="#2%E5%A2%9E%E5%8A%A0%E6%96%AD%E8%A8%80">2.增加断言</a></li><li><a href="#3%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E6%B5%8B%E8%AF%95%E5%AE%9E%E4%BE%8B">3.编写一个测试实例</a></li><li><a href="#4sandbox">4.sandbox</a></li><li><a href="#5%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95">5.请求方法</a></li><li><a href="#6cookie">6.cookie</a></li><li><a href="#7%E9%89%B4%E6%9D%83">7.鉴权</a><ul><li><a href="#1%E4%BB%80%E4%B9%88%E6%98%AF%E9%89%B4%E6%9D%83">(1)什么是鉴权</a></li><li><a href="#2%E9%89%B4%E6%9D%83%E6%96%B9%E5%BC%8F">(2)鉴权方式</a></li></ul></li><li><a href="#8cllection%E5%AE%B9%E5%99%A8">8.cllection容器</a><ul><li><a href="#%E9%9B%86%E5%90%88%E6%A6%82%E8%BF%B0">集合概述</a></li><li><a href="#collection-%E5%B8%B8%E7%94%A8api">Collection 常用API</a></li></ul></li><li><a href="#9-%E5%8F%98%E9%87%8F">9. 变量</a></li><li><a href="#10-%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%96%B9%E6%B3%951%E5%AE%9E%E4%BE%8B">10. 环境变量方法1实例</a></li><li><a href="#11%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E6%96%B9%E6%B3%95%E4%BA%8C%E5%AE%9E%E4%BE%8B">11.全局变量方法二实例</a></li><li><a href="#12%E8%BF%90%E8%A1%8Ccollection">12.运行collection</a></li><li><a href="#13%E8%BF%90%E8%A1%8Ccollection%E5%AE%9E%E4%BE%8B%E7%94%9F%E6%88%90html%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A">13.运行collection实例生成HTML测试报告</a></li><li><a href="#14postman%E5%AF%BC%E5%87%BApython%E8%84%9A%E6%9C%AC">14.postman导出python脚本</a></li></ul></li><li><a href="#5-postman%E4%B8%AD%E6%96%AD%E8%A8%80%E5%92%8C%E6%8A%93%E5%8C%85">5、postman中断言和抓包</a><ul><li><a href="#1%E6%B5%8B%E8%AF%95%E6%96%AD%E8%A8%80">1.测试断言</a></li><li><a href="#2postman%E4%B8%AD%E5%85%85%E5%BD%93%E4%BB%A3%E7%90%86%E8%BF%9B%E8%A1%8Capp%E6%8A%93%E5%8C%85">2.postman中充当代理进行app抓包</a></li></ul></li><li><a href="#%E6%80%BB%E7%BB%93">总结</a></li></ul>(文章目录)<p></p><h1 id="前言"><a class="anchor" href="#前言">#</a> 前言</h1><p>本文为视频学习的截图记录,<br>用途:以方便以后学习翻阅<br>主要以图片的形式展现<br>这里附上视频链接:<span class="exturl" data-url="aHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL3ZpZGVvL0JWMUd0NHkxRDdjbz9wPTU=">postman 学习</span></p><h1 id="一-postman是什么"><a class="anchor" href="#一-postman是什么">#</a> 一、postman 是什么?</h1><p>postman 是一个 HTTP 客户端,用于发送请求和接收响应,是专门用于测试 API 的工具</p><h1 id="二-接口是什么"><a class="anchor" href="#二-接口是什么">#</a> 二、 接口是什么?</h1><p>IT 行业从 WWW 万维网时代 的 C/S、B/S 架构,到移动互联网时代的大前端时代,发展到云计算时代以 IaaS(基础架构即服务),PaaS(平台即服务),SaaS(软件即服务)为代表的云端架构,如今更是进入到万物互联的物联网时代,网络连接着我们生活的方方面面,而承载这些连接的连接点,就是网络接口,接口是不同网络应用之间联系、交互、相互作用的入口和桥梁。</p><p>如下图,是接口在软件系统中所处位置的示意图:<br><img data-src="https://img-blog.csdnimg.cn/2020102009213540.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="三-接口测试和接口测试的目的"><a class="anchor" href="#三-接口测试和接口测试的目的">#</a> 三、 接口测试和接口测试的目的</h1><h2 id="1什么是接口测试"><a class="anchor" href="#1什么是接口测试">#</a> 1. 什么是接口测试</h2><p>百度百科中:</p><blockquote><p>接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。</p></blockquote><p><img data-src="https://img-blog.csdnimg.cn/20201020110441401.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020110449981.png#pic_center" alt="在这里插入图片描述"></p><p>接口测试是测试系统组件间接口的一种测试,<br>主要用于测试系统与外部其他系统之间的接口,<br>以及系统内部各个子模块之间的接口。</p><h2 id="2为什么要进行接口测试"><a class="anchor" href="#2为什么要进行接口测试">#</a> 2. 为什么要进行接口测试</h2><ol><li>现在很多系统前后端架构是分离的,因为不同端(前段,后端)的工作进度不一样,所以我们要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,qq 等)一些接口进行接口测试及验证数据,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。</li><li>如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移也叫 测试左移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口 自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。</li><li>简单概括:<br>①. 越底层发现 bug,它的修复成本是越低的。<br>②. 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。<br>③. 检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入 - 1 元,但是通过接口可以传入 - 1 元。<br>④. 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。<br>⑤. 接口测试相对容易实现自动化持续集成,且相对 UI 自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。<br>⑥. 现在很多系统前后端架构是分离的,从安全层面来说:<br>(1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。<br>(2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。</li></ol><h2 id="3接口测试重点"><a class="anchor" href="#3接口测试重点">#</a> 3. 接口测试重点</h2><p>测试的重点是</p><ol><li>检查接口参数传递的正确性</li><li>检查 接口功能实现的正确性</li><li>检查输出结果的正确性</li><li>检查各种异常情况的容错处理的完整性和合理性</li></ol><p>保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:<br>(1)能够提早发现 bug,符合质量控制前移的理念。<br>(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。<br>(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑</p><h2 id="4接口测试分类"><a class="anchor" href="#4接口测试分类">#</a> 4. 接口测试分类</h2><p>针对软件接口的分类一般有如下几种情况:</p><ol><li>系统与系统之间的调用<br>如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;</li><li>同一系统内部上层服务对下层服务的调用<br>如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。</li></ol><h1 id="四-postman进行接口测试"><a class="anchor" href="#四-postman进行接口测试">#</a> 四、postman 进行接口测试</h1><h2 id="1http知识"><a class="anchor" href="#1http知识">#</a> 1.HTTP 知识</h2><p>HTTP 是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP 默认使用 80 端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加 80 端口。 需要注意的是,现在大多数访问都使用了 HTTPS 协议,而 HTTPS 的默认端口为 443,如果使用 80 端口访问 HTTPS 协议的服务器可能会被拒绝。<br><img data-src="https://img-blog.csdnimg.cn/20201020100309267.png#pic_center" alt="在这里插入图片描述"><br> HTTP 请求 / 响应的步骤:<br>客户端连接到 Web 服务器 -> 发送 Http 请求 -> 服务器接受请求并返回 HTTP 响应 -> 释放连接 TCP 连接 -> 客户端浏览器解析 HTML 内容</p><p>1、客户端连接到 Web 服务器<br>一个 HTTP 客户端,通常是浏览器,与 Web 服务器的 HTTP 端口(默认为 80)建立一个 TCP 套接字连接。例如,<span class="exturl" data-url="aHR0cDovL3d3dy5iYWlkdS5jb20=">http://www.baidu.com</span></p><p>2、发送 HTTP 请求<br>通过 TCP 套接字,客户端向 Web 服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据 4 部分组成。</p><p>3、服务器接受请求并返回 HTTP 响应<br> Web 服务器解析请求,定位请求资源。服务器将资源复本写到 TCP 套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据 4 部分组成。<br>4、释放连接 TCP 连接<br>若 connection 模式为 close,则服务器主动关闭 TCP 连接,客户端被动关闭连接,释放 TCP 连接;若 connection 模式为 keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;</p><p>5、客户端浏览器解析 HTML 内容<br>客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集。客户端浏览器读取响应数据 HTML,根据 HTML 的语法对其进行格式化,并在浏览器窗口中显示。</p><p>GET 和 POST 请求:</p><p>如果是 get 请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是 get 请求,如果是 post 的请求的话,就不行了,就得借助工具来发送。</p><p><strong>GET 请求和 POST 请求的区别:</strong><br><img data-src="https://img-blog.csdnimg.cn/20201020101214841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>1、GET 使用 URL 或 Cookie 传参。而 POST 将数据放在 BODY 中。</p><p>2、GET 的 URL 会有长度上的限制,则 POST 的数据则可以非常大。</p><p>3、POST 比 GET 安全,因为数据在地址栏上不可见。</p><p>4、一般 get 请求用来获取数据,Post 请求用来发送数据。</p><p>2)、http 状态码</p><p>每发出一个 http 请求之后,都会有一个响应,http 本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:</p><p>1、200 2 开头的都表示这个请求发送成功,最常见的就是 200,就代表这个请求是 ok 的,服务器也返回了。</p><p>2、300 3 开头的代表重定向,最常见的是 302,把这个请求重定向到别的地方了,</p><p>3、400 400 代表客户端发送的请求有语法错误,401 代表访问的页面没有授权,403 表示没有权限访问这个页面,404 代表没有这个页面</p><p>4、500 5 开头的代表服务器有异常,500 代表服务器内部异常,504 代表服务器端超时,没返回结果</p><p>常见的几种状态码:<br><strong>200:</strong> OK 当您的操作将在响应正文中返回数据时,出现此结果。<br><strong>201:</strong> 资源成功创建和更新<br><strong> 204:</strong> No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。<br><strong>301:</strong> 表示要从这个接口重定向到另外的接口(出现较多)<br><strong>304:</strong> Not Modified(重定向) 当测试实体自上次检索以来是否被修改时,出现此结果。<br><strong>400:</strong> 本来 api 必须要的参数但没有提供时,会出现<br><strong> 401:</strong> 需要登录才能访问的接口,未登录时会报 401<br><strong>404:</strong> Not Found(客户端错误) 当资源不存在时,出现此结果。<br><strong>405:</strong> Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。<br><strong>412</strong>: Precondition Failed 客户端错误<br><strong> 413</strong>: Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。<br><strong>501</strong>: Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。<br><strong>503</strong>: Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。</p><p><img data-src="https://img-blog.csdnimg.cn/20201020094557254.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201020094821722.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020094845761.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020094902209.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020094932863.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020102009502419.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020095200705.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020095230334.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="2增加断言"><a class="anchor" href="#2增加断言">#</a> 2. 增加断言</h2><p><img data-src="https://img-blog.csdnimg.cn/20201020095453408.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>一般断言时在 http 响应体中断言处理<br><img data-src="https://img-blog.csdnimg.cn/20201020095519944.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020095532646.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="3编写一个测试实例"><a class="anchor" href="#3编写一个测试实例">#</a> 3. 编写一个测试实例</h2><p>测试目标 url:<br><span class="exturl" data-url="aHR0cHM6Ly93d3cudjJleC5jb20vYXBpL3RvcGljcy9ob3QuanNvbg==">测试目标 url</span><br>1. 输入网址:<br>2. 增加判断状态码和数据是否是 10 条的断言<br>代码:</p><figure class="highlight java"><figcaption data-lang="java"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>pm<span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">"状态码为200"</span><span class="token punctuation">,</span> function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="2"></td><td><pre> pm<span class="token punctuation">.</span>response<span class="token punctuation">.</span><span class="token keyword">to</span><span class="token punctuation">.</span>have<span class="token punctuation">.</span><span class="token function">status</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre>pm<span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">"返回的数据为10"</span><span class="token punctuation">,</span> function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token keyword">var</span> jsonData <span class="token operator">=</span> pm<span class="token punctuation">.</span>response<span class="token punctuation">.</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="6"></td><td><pre> jsonData<span class="token punctuation">.</span>length <span class="token operator">==</span><span class="token operator">=</span> <span class="token number">10</span></pre></td></tr><tr><td data-num="7"></td><td><pre> </pre></td></tr><tr><td data-num="8"></td><td><pre><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201020095752241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>返回的结果:<br><img data-src="https://img-blog.csdnimg.cn/20201020095815452.png#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201020095826275.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="4sandbox"><a class="anchor" href="#4sandbox">#</a> 4.sandbox</h2><p>postman 学习文档:<span class="exturl" data-url="aHR0cHM6Ly9sZWFybmluZy5wb3N0bWFuLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9pbnRyb2R1Y3Rpb24v">https://learning.postman.com/docs/getting-started/introduction/</span><br><img data-src="https://img-blog.csdnimg.cn/20201020100106735.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="5请求方法"><a class="anchor" href="#5请求方法">#</a> 5. 请求方法</h2><p>HTTP/1.1 协议中共定义了八种方法(有时也叫 “动作”),来表明 Request-URL 指定的资源不同的操作方式<br> HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。<br>HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法<br><img data-src="https://img-blog.csdnimg.cn/2020102010041557.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 1、OPTIONS<br> 返回服务器针对特定资源所支持的 HTTP 请求方法,也可以利用向 web 服务器发送‘*’的请求来测试服务器的功能性<br> 2、HEAD<br> 向服务器索与 GET 请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。<br>3、GET<br> 向特定的资源发出请求。注意:GET 方法不应当被用于产生 “副作用” 的操作中,例如在 Web Application 中,其中一个原因是 GET 可能会被网络蜘蛛等随意访问。Loadrunner 中对应 get 请求函数:web_link 和 web_url<br>4、POST<br> 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和 / 或已有资源的修改。 Loadrunner 中对应 POST 请求函数:web_submit_data,web_submit_form<br>5、PUT<br> 向指定资源位置上传其最新内容<br> 6、DELETE<br> 请求服务器删除 Request-URL 所标识的资源<br> 7、TRACE<br> 回显服务器收到的请求,主要用于测试或诊断<br> 8、CONNECT<br>HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。<br>注意:<br>1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码 405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码 501(Not Implemented)。<br>2)HTTP 服务器至少应该实现 GET 和 HEAD/POST 方法,其他方法都是可选的,此外除上述方法,特定的 HTTP 服务器支持扩展自定义的方法。</p><h2 id="6cookie"><a class="anchor" href="#6cookie">#</a> 6.cookie</h2><p>Cookie 的诞生</p><p>由于 HTTP 协议是无状态的,而服务器端的业务必须是要有状态的。Cookie 诞生的最初目的是为了存储 web 中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是 RFC 6265,它是一个由浏览器服务器共同协作实现的规范。<br>Cookie 的处理分为:</p><ol><li>服务器像客户端发送 cookie</li><li>浏览器将 cookie 保存</li><li>之后每次 http 请求浏览器都会将 cookie 发送给服务器端</li><li>服务器端的发送与解析</li><li>发送 cookie</li></ol><p>服务器端像客户端发送 Cookie 是通过 HTTP 响应报文实现的,在 Set-Cookie 中设置需要像客户端发送的 cookie,cookie 格式如下:</p><p><strong>Set-Cookie:</strong> "name=value;<span class="exturl" data-url="aHR0cDovL2RvbWFpbj0uZG9tYWluLmNvbQ==">domain=.domain.com</span>;path=/;expires=Sat, 11 Jun 2016 11:29:42 GMT;HttpOnly;secure"<br> 其中 name=value 是必选项,其它都是可选项。Cookie 的主要构成如下:</p><p><strong>name:</strong><br> 一个唯一确定的 cookie 名称。通常来讲 cookie 的名称是不区分大小写的。<br><strong>value:</strong><br> 存储在 cookie 中的字符串值。最好为 cookie 的 name 和 value 进行 url 编码<br><strong> domain:</strong><br>cookie 对于哪个域是有效的。所有向该域发送的请求中都会包含这个 cookie 信息。这个值可以包含子域 (如:<br><span class="exturl" data-url="aHR0cDovL3lxLmFsaXl1bi5jb20=">yq.aliyun.com</span>),也可以不包含它 (如:.aliyun.com,则对于 aliyun.com 的所有子域都有效).<br><strong>path:</strong><br> 表示这个 cookie 影响到的路径,浏览器跟会根据这项配置,像指定域中匹配的路径发送 cookie。<br><strong>expires:</strong><br> 失效时间,表示 cookie 何时应该被删除的时间戳 (也就是,何时应该停止向服务器发送这个 cookie)。如果不设置这个时间戳,浏览器会在页面关闭时即将删除所有 cookie;不过也可以自己设置删除时间。这个值是 GMT 时间格式,如果客户端和服务器端时间不一致,使用 expires 就会存在偏差。<br><strong>max-age:</strong><br> 与 expires 作用相同,用来告诉浏览器此 cookie 多久过期(单位是秒),而不是一个固定的时间点。正常情况下,max-age 的优先级高于 expires。<br><strong>HttpOnly:</strong><br> 告知浏览器不允许通过脚本 document.cookie 去更改这个值,同样这个值在 document.cookie 中也不可见。但在 http 请求张仍然会携带这个 cookie。注意这个值虽然在脚本中不可获取,但仍然在浏览器安装目录中以文件形式存在。这项设置通常在服务器端设置。<br><strong>secure:</strong><br> 安全标志,指定后,只有在使用 SSL 链接时候才能发送到服务器,如果是 http 链接则不会传递该信息。就算设置了 secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息,所以不要把重要信息放 cookie 就对了服务器端设置。<br><img data-src="https://img-blog.csdnimg.cn/20201020101954674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020102011195.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="7鉴权"><a class="anchor" href="#7鉴权">#</a> 7. 鉴权</h2><h3 id="1什么是鉴权"><a class="anchor" href="#1什么是鉴权">#</a> (1)什么是鉴权</h3><p>鉴权(authentication)是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式的弱点十分明显:一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。<br>为了克服这种鉴权方式的缺点,需要一个更加可靠的鉴权方式。目前的主流鉴权方式是利用认证授权来验证数字签名的正确与否。<br>逻辑上,授权发生在鉴权之后,而实际上,这两者常常是一个过程。</p><h3 id="2鉴权方式"><a class="anchor" href="#2鉴权方式">#</a> (2)鉴权方式</h3><p>我们常用的鉴权有四种:<br>1、HTTP Basic Authentication<br>2、session-cookie<br>3、Token 验证<br> 4、OAuth (开放授权)</p><p>一般涉及到的都是 Token</p><p><img data-src="https://img-blog.csdnimg.cn/20201020102430269.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>有一些 api 在访问之前必须进行登录<br>一般测试人员在测试的时候只需要:<br>1. 获取 token(抓包,直接查看)<br>2. 设置 headers</p><p><img data-src="https://img-blog.csdnimg.cn/2020102010245681.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="8cllection容器"><a class="anchor" href="#8cllection容器">#</a> 8.cllection 容器</h2><h3 id="集合概述"><a class="anchor" href="#集合概述">#</a> 集合概述</h3><p>集合:集合是 java 中提供的一种容器,可以用来存储多个数据。<br>集合和数组既然都是容器,它们有什么区别呢?</p><p>数组的长度是固定的。集合的长度是可变的。<br>数组中存储的是同一类型的元素,可以存储任意类型数据。集合存储的都是引用数据类型。如果想存储基本类型数据需要存储对应的包装类型。<br>集合常用类的继承体系</p><p><strong>Collection:</strong><br>单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是<strong> java.util.List</strong> 和<strong> java.util.Set</strong>。其中,List 的特点是元素有序、元素可重复。Set 的特点是元素不可重复。List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList,Set 接口的主要实现类有 java.util.HashSet 和 java.util.LinkedHashSet。</p><p>一张图来描述集合常用类的继承体系</p><p><img data-src="https://img-blog.csdnimg.cn/20201020103340772.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>集合本身是一个工具,它存放在 java.util 包中。在 Collection 接口定义着单列集合框架中最最共性的内容。</p><h3 id="collection-常用api"><a class="anchor" href="#collection-常用api">#</a> Collection 常用 API</h3><p><strong>Collection 是所有单列集合的父接口</strong>,因此在 Collection 中定义了单列集合 (List 和 Set) 通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:<br><strong>public boolean add(E e):</strong> 把给定的对象添加到当前集合中 。<br><strong>public void clear():</strong> 清空集合中所有的元素。<br><strong>public boolean remove(E e):</strong> 把给定的对象在当前集合中删除。<br><strong>public boolean contains(Object obj):</strong> 判断当前集合中是否包含给定的对象。<br><strong>public boolean isEmpty()</strong>: 判断当前集合是否为空。<br><strong>public int size():</strong> 返回集合中元素的个数。<br><strong>public Object[] toArray():</strong> 把集合中的元素,存储到数组中</p><p><img data-src="https://img-blog.csdnimg.cn/20201020104247715.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="9-变量"><a class="anchor" href="#9-变量">#</a> 9. 变量</h2><p><img data-src="https://img-blog.csdnimg.cn/20201020104357776.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020102010441211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="10-环境变量方法1实例"><a class="anchor" href="#10-环境变量方法1实例">#</a> 10. 环境变量方法 1 实例</h2><p>实列:<br>接口文档:<br><span class="exturl" data-url="aHR0cHM6Ly93d3cudjJleC5jb20vcC83djlURWM1MyUyMCVFNiVCNSU4QiVFOCVBRiU5NSVFNyU5QSU4NHVybCVFRiVCQyU5QQ==">接口文档</span><br><span class="exturl" data-url="aHR0cHM6Ly93d3cudjJleC5jb20vYXBpL25vZGVzL3Nob3cuanNvbj9uYW1lPXB5dGhvbg==">测试 url</span><br><img data-src="https://img-blog.csdnimg.cn/20201020104443234.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>打开 postman<br><img data-src="https://img-blog.csdnimg.cn/20201020104555449.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> name=python,将 name 设置为全局变量时爆红,先要设置环境变量<br>点击<br><img data-src="https://img-blog.csdnimg.cn/20201020104613779.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>添加环境变量<br><img data-src="https://img-blog.csdnimg.cn/20201020104635586.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>变量改变颜色,编程橘黄色,send 后的结果</p><p><img data-src="https://img-blog.csdnimg.cn/20201020104655418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="11全局变量方法二实例"><a class="anchor" href="#11全局变量方法二实例">#</a> 11. 全局变量方法二实例</h2><p>环境变量是与 环境相关的<br>全局变量是独立于环境的<br> 1. 先取消环境变量<br><img data-src="https://img-blog.csdnimg.cn/20201020104749535.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>点击<br><img data-src="https://img-blog.csdnimg.cn/20201020104805921.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>出现:<br><img data-src="https://img-blog.csdnimg.cn/20201020104819168.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>开始编辑<br><img data-src="https://img-blog.csdnimg.cn/2020102010483966.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020104847634.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>完成<br><img data-src="https://img-blog.csdnimg.cn/20201020104905672.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>注意:当环境变量和全局变量中对同一个个变量名进行不同的赋值时,环境变量的值可以覆盖到全局变量的值</p><h2 id="12运行collection"><a class="anchor" href="#12运行collection">#</a> 12. 运行 collection</h2><p><img data-src="https://img-blog.csdnimg.cn/20201020104948867.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020105001260.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020102010501058.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="13运行collection实例生成html测试报告"><a class="anchor" href="#13运行collection实例生成html测试报告">#</a> 13. 运行 collection 实例生成 HTML 测试报告</h2><p>创建 collection<br> 再创建一个 request 请求<br><img data-src="https://img-blog.csdnimg.cn/20201020105104571.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>点击运行<br><img data-src="https://img-blog.csdnimg.cn/20201020105120227.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>按钮在命令行中运行<br><img data-src="https://img-blog.csdnimg.cn/20201020105135242.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>跳转到网页:<br><span class="exturl" data-url="aHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbmV3bWFu">https://www.npmjs.com/package/newman</span></p><p>安装 newman<br><img data-src="https://img-blog.csdnimg.cn/20201020105151880.png#pic_center" alt="在这里插入图片描述"><br> npm install -g newman<br> 在命令行中下载 newman<br><img data-src="https://img-blog.csdnimg.cn/2020102010521217.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>检验 newman 是否安装成功</p><p><img data-src="https://img-blog.csdnimg.cn/20201020105225286.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>重新回到 postman<br><img data-src="https://img-blog.csdnimg.cn/20201020105244597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020105258562.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>导出到本地文件:<br><img data-src="https://img-blog.csdnimg.cn/2020102010531423.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>是一打开 cmder 或者 cmd<br> 跳转到导出的目录下:<br><img data-src="https://img-blog.csdnimg.cn/20201020105340108.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>运行<br><img data-src="https://img-blog.csdnimg.cn/20201020105353513.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="14postman导出python脚本"><a class="anchor" href="#14postman导出python脚本">#</a> 14.postman 导出 python 脚本</h2><p><img data-src="https://img-blog.csdnimg.cn/20201020141516134.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020141532884.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>首先安装 Python(这里已经安装)<br>查看 python 版本<br><img data-src="https://img-blog.csdnimg.cn/20201020141551574.png#pic_center" alt="在这里插入图片描述"><br> pip 下载 requests 库(之前已经下载过):<br><img data-src="https://img-blog.csdnimg.cn/20201020141612566.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>在 postman 中点击 Code<br><img data-src="https://img-blog.csdnimg.cn/20201020141630673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>选择:<br><img data-src="https://img-blog.csdnimg.cn/20201020141704555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><strong>点击右上角复制:</strong></p><p><img data-src="https://img-blog.csdnimg.cn/20201020141737460.png#pic_center" alt="在这里插入图片描述"></p><p>创建一个 py 文件在 pycharm 中打开</p><figure class="highlight python"><figcaption data-lang="python"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token keyword">import</span> requests</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token keyword">import</span> unittest</pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token keyword">class</span> <span class="token class-name">v2exAPITestCase</span><span class="token punctuation">(</span>unittest<span class="token punctuation">.</span>TestCase<span class="token punctuation">)</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token keyword">def</span> <span class="token function">test_node_api</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="6"></td><td><pre> url <span class="token operator">=</span> <span class="token string">"https://www.v2ex.com/api/nodes/show.json?name=python"</span></pre></td></tr><tr><td data-num="7"></td><td><pre></pre></td></tr><tr><td data-num="8"></td><td><pre> payload <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></pre></td></tr><tr><td data-num="9"></td><td><pre> querystring <span class="token operator">=</span><span class="token punctuation">{</span><span class="token string">"name"</span> <span class="token punctuation">:</span><span class="token string">"python"</span><span class="token punctuation">}</span></pre></td></tr><tr><td data-num="10"></td><td><pre> headers <span class="token operator">=</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token string">'Cookie'</span><span class="token punctuation">:</span> <span class="token string">'__cfduid=d333f7a16684a741d353302599a54b2921603071821'</span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="13"></td><td><pre></pre></td></tr><tr><td data-num="14"></td><td><pre> response <span class="token operator">=</span> requests<span class="token punctuation">.</span>request<span class="token punctuation">(</span><span class="token string">"GET"</span><span class="token punctuation">,</span> url<span class="token punctuation">,</span> headers<span class="token operator">=</span>headers<span class="token punctuation">,</span> data<span class="token operator">=</span>payload<span class="token punctuation">)</span><span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="15"></td><td><pre> self<span class="token punctuation">.</span>assertEqual<span class="token punctuation">(</span>response<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> querystring<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token comment"># print(response.text.encode('utf8'))</span></pre></td></tr><tr><td data-num="17"></td><td><pre></pre></td></tr><tr><td data-num="18"></td><td><pre><span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="19"></td><td><pre> unittest<span class="token punctuation">.</span>main<span class="token punctuation">(</span><span class="token punctuation">)</span></pre></td></tr></tbody></table></figure><p>运行成功<br><img data-src="https://img-blog.csdnimg.cn/20201020141840294.png#pic_center" alt="在这里插入图片描述"><br>重新修改加入数据驱动<br>修改后的测试代码为:</p><figure class="highlight python"><figcaption data-lang="python"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token keyword">import</span> requests</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token keyword">import</span> unittest</pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token keyword">class</span> <span class="token class-name">v2exAPITestCase</span><span class="token punctuation">(</span>unittest<span class="token punctuation">.</span>TestCase<span class="token punctuation">)</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token keyword">def</span> <span class="token function">test_node_api</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="6"></td><td><pre> url <span class="token operator">=</span> <span class="token string">"https://www.v2ex.com/api/nodes/show.json?name=python"</span></pre></td></tr><tr><td data-num="7"></td><td><pre> payload <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></pre></td></tr><tr><td data-num="8"></td><td><pre> headers <span class="token operator">=</span> <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token string">'Cookie'</span><span class="token punctuation">:</span> <span class="token string">'__cfduid=d333f7a16684a741d353302599a54b2921603071821'</span></pre></td></tr><tr><td data-num="10"></td><td><pre> <span class="token punctuation">}</span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token comment"># querystring ={"name" :"python"}</span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token keyword">for</span> node_name <span class="token keyword">in</span> <span class="token punctuation">[</span><span class="token string">'php'</span><span class="token punctuation">,</span><span class="token string">'python'</span><span class="token punctuation">,</span><span class="token string">'qna'</span><span class="token punctuation">]</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="13"></td><td><pre> response <span class="token operator">=</span> requests<span class="token punctuation">.</span>request<span class="token punctuation">(</span><span class="token string">"GET"</span><span class="token punctuation">,</span> url<span class="token punctuation">,</span> headers<span class="token operator">=</span>headers<span class="token punctuation">,</span> params<span class="token operator">=</span><span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span> node_name<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="14"></td><td><pre> self<span class="token punctuation">.</span>assertEqual<span class="token punctuation">(</span>response<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> node_name<span class="token punctuation">)</span></pre></td></tr><tr><td data-num="15"></td><td><pre></pre></td></tr><tr><td data-num="16"></td><td><pre></pre></td></tr><tr><td data-num="17"></td><td><pre><span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">'__main__'</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="18"></td><td><pre> unittest<span class="token punctuation">.</span>main<span class="token punctuation">(</span><span class="token punctuation">)</span></pre></td></tr></tbody></table></figure><p>运行成功<br><img data-src="https://img-blog.csdnimg.cn/2020102014192443.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="5-postman中断言和抓包"><a class="anchor" href="#5-postman中断言和抓包">#</a> 5、postman 中断言和抓包</h1><h2 id="1测试断言"><a class="anchor" href="#1测试断言">#</a> 1. 测试断言</h2><p>断言:实际结果和期望结果的比对的过程<br>比对数据:状态码,返回数据,响应头,响应时间<br>在 test 中编写 js 进行断言<br><img data-src="https://img-blog.csdnimg.cn/20201020105937990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> tm.response 是指相应对象<br><img data-src="https://img-blog.csdnimg.cn/20201020110107336.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>首先创建一个管理文件夹(集合)<br><img data-src="https://img-blog.csdnimg.cn/20201020110123256.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>存放一个项目中的所有接口测试便于管理<br><img data-src="https://img-blog.csdnimg.cn/20201020110139367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>在 test 中编写断言<br><img data-src="https://img-blog.csdnimg.cn/20201020110156991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201020110207807.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>结果是绿色的表示通过<br><img data-src="https://img-blog.csdnimg.cn/20201020110223413.png#pic_center" alt="在这里插入图片描述"><br>结果是红色的表示不通过<br><img data-src="https://img-blog.csdnimg.cn/20201020110237728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>需要保存 js 代码是 Ctrl+S 键<br>输入请求名<br><img data-src="https://img-blog.csdnimg.cn/2020102011025650.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>选择存放接口的管理文件<br><img data-src="https://img-blog.csdnimg.cn/20201020110313243.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h2 id="2postman中充当代理进行app抓包"><a class="anchor" href="#2postman中充当代理进行app抓包">#</a> 2.postman 中充当代理进行 app 抓包</h2><p>电脑 ——》postman——》手机<br><img data-src="https://img-blog.csdnimg.cn/2020102011070080.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>如何在 postman 中设置代理<br><img data-src="https://img-blog.csdnimg.cn/20201020110754852.png#pic_center" alt="在这里插入图片描述"><br> postman 中</p><p><img data-src="https://img-blog.csdnimg.cn/2020102011080855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>点击代理显示代理设置:<br>填写端口号<br>选择抓取到的包存放在哪个管理文件夹中<br><img data-src="https://img-blog.csdnimg.cn/20201020110826324.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>之后在手机上设置<br><img data-src="https://img-blog.csdnimg.cn/202010201108420.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>端口号一定一致<br>服务器是电脑的 IP<br> 设置之后在手机端操作会在 postman 中增加 requests<br> 点击雷达代理的图案关闭代理<br><img data-src="https://img-blog.csdnimg.cn/20201020110900971.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>抓包是为了查看数据</p><h1 id="总结"><a class="anchor" href="#总结">#</a> 总结</h1><p>参考链接附上<br><span class="exturl" data-url="aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vbGwtZ2FvY2hlbmcvcC8xMTA1MTg5Ni5odG1s"> postman</span><br><span class="exturl" data-url="aHR0cHM6Ly93d3cuemhpaHUuY29tL3F1ZXN0aW9uLzYzNjg1NjM1L2Fuc3dlci8xMjU2Njk0MDE1"> 为什么要进行接口测试</span><br><span class="exturl" data-url="aHR0cHM6Ly96aHVhbmxhbi56aGlodS5jb20vcC81MDM3ODMzMw=="> postman 基础 </span><br><span class="exturl" data-url="aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vd2VpYmFuZ2dhbmcvcC85NDU0NTgxLmh0bWw=">http 请求方式</span><br><span class="exturl" data-url="aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5ncXVhbl96b25lL2FydGljbGUvZGV0YWlscy83NzYyNzg5OQ=="> cookie</span><br><span class="exturl" data-url="aHR0cHM6Ly9iYWlqaWFoYW8uYmFpZHUuY29tL3M/aWQ9MTY2ODk4OTgwMjM1MDU1Mzg4NCZhbXA7d2ZyPXNwaWRlciZhbXA7Zm9yPXBj">collection 集合</span></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 软件测试 </category>
<category> 软件测试工具学习 </category>
<category> 接口测试工具 </category>
<category> Postman </category>
</categories>
<tags>
<tag> Postman </tag>
</tags>
</entry>
<entry>
<title>08Springboot-- 依赖错误NoClassDefFoundError</title>
<link href="computer-science/java/springboot/springboot-error1/08Springboot-%E4%BE%9D%E8%B5%96%E9%94%99%E8%AF%AFNoClassDefFoundError/"/>
<url>computer-science/java/springboot/springboot-error1/08Springboot-%E4%BE%9D%E8%B5%96%E9%94%99%E8%AF%AFNoClassDefFoundError/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>前后端启动成功没有错误,但在登录是出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p>前后端启动成功没有错误,但在登录是出现<img data-src="https://img-blog.csdnimg.cn/20201005171754870.png#pic_center" alt="在这里插入图片描述"><br>后端呢 SpringBoot 报出错误</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>ERROR c.e.c.f.w.e.GlobalExceptionHandler - <span class="token punctuation">[</span>handleException,83<span class="token punctuation">]</span> - Handler dispatch failed<span class="token punctuation">;</span> nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter</pre></td></tr></tbody></table></figure><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>JDK 版本号是:<br><img data-src="https://img-blog.csdnimg.cn/20201005171833209.png#pic_center" alt="在这里插入图片描述"><br>今天在使用 JDK 13.0 环境下使用 IDEA 时候出现了这个错误,错误日志如下:<br>我是采用了增加依赖解决的<br>故障原因:<br>JAXB API 是 java EE 的 API,因此在 java SE 9.0 中不再包含这个 Jar 包。<br>java 9 中引入了模块的概念,默认情况下,Java SE 中将不再包含 java EE 的 Jar 包<br>而在 java 6/7 / 8 时关于这个 API 都是捆绑在一起的</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><h2 id="解决方案一"><a class="anchor" href="#解决方案一">#</a> 解决方案一:</h2><p>降低 JDK 版本到 JDK 8</p><h2 id="解决方案二亲测可行"><a class="anchor" href="#解决方案二亲测可行">#</a> 解决方案二:(亲测可行)</h2><p>手动加入这些依赖 Jar 包</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token operator"><</span>groupId<span class="token operator">></span>javax.xml.bind<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token operator"><</span>artifactId<span class="token operator">></span>jaxb-api<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token operator"><</span>version<span class="token operator">></span><span class="token number">2.3</span>.<span class="token operator"><span class="token file-descriptor important">0</span><</span>/version<span class="token operator">></span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="7"></td><td><pre> <span class="token operator"><</span>groupId<span class="token operator">></span>com.sun.xml.bind<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="8"></td><td><pre> <span class="token operator"><</span>artifactId<span class="token operator">></span>jaxb-impl<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token operator"><</span>version<span class="token operator">></span><span class="token number">2.3</span>.<span class="token operator"><span class="token file-descriptor important">0</span><</span>/version<span class="token operator">></span></pre></td></tr><tr><td data-num="10"></td><td><pre> <span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token operator"><</span>groupId<span class="token operator">></span>com.sun.xml.bind<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="13"></td><td><pre> <span class="token operator"><</span>artifactId<span class="token operator">></span>jaxb-core<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="14"></td><td><pre> <span class="token operator"><</span>version<span class="token operator">></span><span class="token number">2.3</span>.<span class="token operator"><span class="token file-descriptor important">0</span><</span>/version<span class="token operator">></span></pre></td></tr><tr><td data-num="15"></td><td><pre> <span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="17"></td><td><pre> <span class="token operator"><</span>groupId<span class="token operator">></span>javax.activation<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="18"></td><td><pre> <span class="token operator"><</span>artifactId<span class="token operator">></span>activation<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="19"></td><td><pre> <span class="token operator"><</span>version<span class="token operator">></span><span class="token number">1.1</span>.<span class="token operator"><span class="token file-descriptor important">1</span><</span>/version<span class="token operator">></span></pre></td></tr><tr><td data-num="20"></td><td><pre> <span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr></tbody></table></figure><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>07Springboot-- 导包运行报错IllegalStateException</title>
<link href="computer-science/java/springboot/springboot-error1/07Springboot-%E5%AF%BC%E5%8C%85%E8%BF%90%E8%A1%8C%E6%8A%A5%E9%94%99IllegalStateException/"/>
<url>computer-science/java/springboot/springboot-error1/07Springboot-%E5%AF%BC%E5%8C%85%E8%BF%90%E8%A1%8C%E6%8A%A5%E9%94%99IllegalStateException/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>运行 IDEA 时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration.propertySourcesPlaceholderConfigurer</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/202010051712559.png#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>依赖</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token operator"><</span>groupId<span class="token operator">></span>org.springframework.boot<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token operator"><</span>artifactId<span class="token operator">></span>spring-boot-starter-tomcat<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token operator"><</span><span class="token operator">!</span>--<span class="token operator"><</span>scope<span class="token operator">></span>provided<span class="token operator"><</span>/scope<span class="token operator">></span>--<span class="token operator">></span></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr></tbody></table></figure><p>在 pom.xml 文件中将 scope 注释<br>再加上</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token operator"><</span>dependency<span class="token operator">></span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token operator"><</span>groupId<span class="token operator">></span>javax.servlet<span class="token operator"><</span>/groupId<span class="token operator">></span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token operator"><</span>artifactId<span class="token operator">></span>javax.servlet-api<span class="token operator"><</span>/artifactId<span class="token operator">></span></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token operator"><</span>version<span class="token operator">></span><span class="token number">3.1</span>.<span class="token operator"><span class="token file-descriptor important">0</span><</span>/version<span class="token operator">></span></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token operator"><</span>/dependency<span class="token operator">></span></pre></td></tr></tbody></table></figure><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>06Springboot-- 导包错误</title>
<link href="computer-science/java/springboot/springboot-error1/06Springboot-%E5%AF%BC%E5%8C%85%E9%94%99%E8%AF%AF/"/>
<url>computer-science/java/springboot/springboot-error1/06Springboot-%E5%AF%BC%E5%8C%85%E9%94%99%E8%AF%AF/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>运行 IDEA 时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>Cannot resolve org.apache.tomcat.embed:tomcat-embed-core:9.0.36</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201005170459456.png#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>刚刚想学习 springboot 的缓冲机制 在新建项目的时候发现了这么一个错误<br><img data-src="https://img-blog.csdnimg.cn/20201005170723193.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201005170731919.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>这两个都在指明 tomcat9.0.36 无法下载成功<br>但是你之前运行其他的 spring boot 项目是 web 依赖的 tomcat 是可以运行的<br>这个时候你就会联想到是版本的问题了吧</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p>所以我们可以打开一个之前可以运行的 springboot 项目<br>找到右边的 maven,点击<br><img data-src="https://img-blog.csdnimg.cn/2020100517084951.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20201005170839795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>你会发现你的 tomcat 的版本是其他 我这里是 9.0.35, 所以这个时候嘛<br>我们打开之前无法使用的 springboot 项目<br>打开它的 pox.xml</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token operator"><</span>properties<span class="token operator">></span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token operator"><</span>java.version<span class="token operator">></span><span class="token number">1</span>.<span class="token operator"><span class="token file-descriptor important">8</span><</span>/java.version<span class="token operator">></span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token operator"><</span>/properties<span class="token operator">></span></pre></td></tr></tbody></table></figure><p>只需添加成</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token operator"><</span>properties<span class="token operator">></span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token operator"><</span>java.version<span class="token operator">></span><span class="token number">1</span>.<span class="token operator"><span class="token file-descriptor important">8</span><</span>/java.version<span class="token operator">></span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token operator"><</span>tomcat.version<span class="token operator">></span>你的tomcat版本号<span class="token operator"><</span>/tomcat.version<span class="token operator">></span></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token operator"><</span>/properties<span class="token operator">></span></pre></td></tr></tbody></table></figure><p>然后点击左边的 maven 再 install 就 ok 了<img data-src="https://img-blog.csdnimg.cn/20201005170947274.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201005170956861.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>05Springboot--数据库拼写错误BindingException: Invalid bound statement </title>
<link href="computer-science/java/springboot/springboot-error1/05Springboot-%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8B%BC%E5%86%99%E9%94%99%E8%AF%AFBindingException-Invalid-bound-statement/"/>
<url>computer-science/java/springboot/springboot-error1/05Springboot-%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8B%BC%E5%86%99%E9%94%99%E8%AF%AFBindingException-Invalid-bound-statement/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>运行 IDEA 时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>org.apache.ibatis.binding.BindingException: Invalid bound statement <span class="token punctuation">(</span>not found<span class="token punctuation">)</span>: com.example.mysportjava.dao.UserDao.getUserByMassage</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201005170459456.png#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>映射文件拼写错误</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005170519357.png#pic_center" alt="在这里插入图片描述"><br> 1 问题实质: dao 层 (又叫 mapper 接口) 跟 mapper.xml 文件没有映射<br> 2 问题原因:出现这种映射问题的原因分为低级原因和更低级原因两种<br>更低级原因:<br>(1) dao 层的方法和 mapper.xml 中的方法不一样;<br>(2) mapper 中的 namespace resultParameter 和对应的 dao 层 entity 层不一样<br> (3) 拼写错误 如漏写 少写 多写....<br> 上述这些原因都会导致两者不能映射 这些检查和修正的工作自己来吧不会的百度就行<br>低级原因: spring 配置文件中关于 mybatis 的与 xml 文件路径寻找相关的配置没有写<br>导致调用 dao 层方法时,没有寻找 dao.xml 文件的正确路径 结果 dao 迷路了 从而两者无法映射<br> 3 解决思路:把 dao.xml (或 mapper.xml) 路径配置写好!!!!<br> 既然出发点 (dao) 已经确定,目的地 (dao.xml/mapper.xml) 也确定了<br>想到到达就必须画一条到 dao.xml 的路<br> 4 解决步骤:<br>(1) 打开 spring-context.xml 配置文件<br> (2) 找到 class 为 org.mybatis.spring.SqlSessionFactoryBean 这个 bean<br> (3) 找到 name 为 mapperLocations 的 property<br> (4) 在 list 标签中添加一个 value<br> 例如:<br><value>classpath:/info/mappings/**/*.xml</value><br> 重启,问题解决!!!<br> 注:classpath 是配置好的类路径 要想知道表示什么 最简单的方式是参考其他 list 看一眼比对项目结构就了然了</p><p><a href="https://ppxpython.github.io/"> 我的博客,欢迎点击光顾</a></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>05Springboot--出现BindingException</title>
<link href="computer-science/java/springboot/springboot-error1/05Springboot-%E5%87%BA%E7%8E%B0BindingException/"/>
<url>computer-science/java/springboot/springboot-error1/05Springboot-%E5%87%BA%E7%8E%B0BindingException/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>IDEA 在启动时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005170050317.png#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token number">2020</span>-09-21 <span class="token number">21</span>:08:06.650 ERROR <span class="token number">23480</span> --- <span class="token punctuation">[</span>nio-9000-exec-3<span class="token punctuation">]</span> o.a.c.c.C.<span class="token punctuation">[</span>.<span class="token punctuation">[</span>.<span class="token punctuation">[</span>/<span class="token punctuation">]</span>.<span class="token punctuation">[</span>dispatcherServlet<span class="token punctuation">]</span> <span class="token builtin class-name">:</span> Servlet.service<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">for</span> servlet <span class="token punctuation">[</span>dispatcherServlet<span class="token punctuation">]</span> <span class="token keyword">in</span> context with path <span class="token punctuation">[</span><span class="token punctuation">]</span> threw exception <span class="token punctuation">[</span>Request processing failed<span class="token punctuation">;</span> nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement <span class="token punctuation">(</span>not found<span class="token punctuation">)</span>: com.example.mysportjava.dao.UserDao.getUserByMassage<span class="token punctuation">]</span> with root cause</pre></td></tr><tr><td data-num="2"></td><td><pre></pre></td></tr><tr><td data-num="3"></td><td><pre>org.apache.ibatis.binding.BindingException: Invalid bound statement <span class="token punctuation">(</span>not found<span class="token punctuation">)</span>: com.example.mysportjava.dao.UserDao.getUserByMa</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201005170117931.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>多出空格</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005170138566.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><a href="https://ppxpython.github.io/"> 我的博客,欢迎点击光顾</a></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>04Springboot-- 数据库错误</title>
<link href="computer-science/java/springboot/springboot-error1/04Springboot-%E6%95%B0%E6%8D%AE%E5%BA%93%E9%94%99%E8%AF%AF/"/>
<url>computer-science/java/springboot/springboot-error1/04Springboot-%E6%95%B0%E6%8D%AE%E5%BA%93%E9%94%99%E8%AF%AF/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>IDEA 在启动时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005165807631.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>Error starting ApplicationContext. To display the conditions report re-run your application with <span class="token string">'debug'</span> enabled.</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token number">2020</span>-09-21 <span class="token number">21</span>:01:19.269 ERROR <span class="token number">25820</span> --- <span class="token punctuation">[</span> main<span class="token punctuation">]</span> o.s.boot.SpringApplication <span class="token builtin class-name">:</span> Application run failed</pre></td></tr></tbody></table></figure><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>注释</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005165847835.png#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>02Springboot启动类错误</title>
<link href="computer-science/java/springboot/springboot-error1/02Springboot%E5%90%AF%E5%8A%A8%E7%B1%BB%E9%94%99%E8%AF%AF/"/>
<url>computer-science/java/springboot/springboot-error1/02Springboot%E5%90%AF%E5%8A%A8%E7%B1%BB%E9%94%99%E8%AF%AF/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>IDEA 在启动时出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005165440714.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005165456829.png#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>Springboot--01错误记录</title>
<link href="computer-science/java/springboot/springboot-error1/Springboot-01%E9%94%99%E8%AF%AF%E8%AE%B0%E5%BD%95/"/>
<url>computer-science/java/springboot/springboot-error1/Springboot-01%E9%94%99%E8%AF%AF%E8%AE%B0%E5%BD%95/</url>
<content type="html"><![CDATA[<p>问题 1:<br>Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.<br><img data-src="https://img-blog.csdnimg.cn/20201005164657909.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020100516470549.png#pic_center" alt="在这里插入图片描述"></p><p>问题 2<br><img data-src="https://img-blog.csdnimg.cn/2020100516471577.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>二、解决方式:<br>1. 检查自己写的注解是否错了,并没有。<br>2. 在网上查找解决方式:如下所示:<br>步骤一:<br> 在 springboot 的配置文件添加,mybatis 的配置如下所示:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>mybatis:</pre></td></tr><tr><td data-num="2"></td><td><pre> typeAliasesPackage: com.xxx.xxx.dao.entity</pre></td></tr><tr><td data-num="3"></td><td><pre> mapperLocations: classpath:mapper/*.xml</pre></td></tr></tbody></table></figure><p>步骤二:<br> ①将接口与对应的实现类放在与 application 启动类的同一个目录或者他的子目录下,这样注解可以被扫描到,这是最省事的办法。(没测试)<br> ②或者在启动类上加上 @MapperScan 或者 @ComponentScan 注解,手动指定 application 类要扫描哪些包下的注解,如下所示:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>@SpringBootApplication</pre></td></tr><tr><td data-num="2"></td><td><pre>@ComponentScan<span class="token punctuation">(</span>basePackages <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"com.xxx.xxx.dao"</span><span class="token punctuation">}</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="3"></td><td><pre> ③或者在接口上添加@Mapper注解。</pre></td></tr><tr><td data-num="4"></td><td><pre>@Mapper</pre></td></tr><tr><td data-num="5"></td><td><pre>public interface UserMapper <span class="token punctuation">{</span></pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token punctuation">}</span></pre></td></tr></tbody></table></figure><p>问题 3:<br><img data-src="https://img-blog.csdnimg.cn/20201005164810350.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>原因:<br>修改了 mapper 类的名称对应要修改路径<br><img data-src="https://img-blog.csdnimg.cn/20201005164820942.png#pic_center" alt="在这里插入图片描述"></p><p>问题 4:<br>添加数据时未添加外键<br><img data-src="https://img-blog.csdnimg.cn/20201005164831130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>添加 sql 输入外键 unit_ID<br><img data-src="https://img-blog.csdnimg.cn/2020100516484178.png#pic_center" alt="在这里插入图片描述"></p><p>问题 5:</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>Error starting ApplicationContext. To display the conditions report re-run your application with <span class="token string">'debug'</span> enabled.</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token number">2020</span>-09-12 <span class="token number">14</span>:40:39.211 ERROR <span class="token number">60268</span> --- <span class="token punctuation">[</span> main<span class="token punctuation">]</span> o.s.boot.SpringApplication <span class="token builtin class-name">:</span> Application run failed</pre></td></tr></tbody></table></figure><p>常见注释错误,查看代码中的 @注释<br>问题 6:<br><img data-src="https://img-blog.csdnimg.cn/20201005164915811.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>问题 7:<br>在测试的时候报出<br> 415<br> 更改一下请求头</p><p><img data-src="https://img-blog.csdnimg.cn/20201005165030667.png#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>03VUE---拦截路径挂载的问题</title>
<link href="computer-science/vue/vue-error1/03VUE-%E6%8B%A6%E6%88%AA%E8%B7%AF%E5%BE%84%E6%8C%82%E8%BD%BD%E7%9A%84%E9%97%AE%E9%A2%98/"/>
<url>computer-science/vue/vue-error1/03VUE-%E6%8B%A6%E6%88%AA%E8%B7%AF%E5%BE%84%E6%8C%82%E8%BD%BD%E7%9A%84%E9%97%AE%E9%A2%98/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>vscode 中没有报错,但在网页的控制台中出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p>vscode 中没有报错,但在网页的控制台中<br><img data-src="https://img-blog.csdnimg.cn/2020100516264293.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>拦截路径挂载的问题<br><img data-src="https://img-blog.csdnimg.cn/20201005162702325.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p>在上面添加<br> // 出现问题时使用<br> const originalPush=VueRouter.prototype.push<br>VueRouter.prototype.push=function push(location,onResolve,onReject)<ruby> if(onResolve <rp>(</rp><rt>| onReject) return originalPush.call(this,location,onResolve,onReject) return originalPush.call(this,location).catch(err => err)</rt><rp>)</rp></ruby></p><p><img data-src="https://img-blog.csdnimg.cn/20201005162735676.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Vue </category>
<category> 前端Vue中常见问题集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>02VUE---没有引入依赖包</title>
<link href="computer-science/vue/vue-error1/02VUE-%E6%B2%A1%E6%9C%89%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96%E5%8C%85/"/>
<url>computer-science/vue/vue-error1/02VUE-%E6%B2%A1%E6%9C%89%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96%E5%8C%85/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>在运行 vscode 时,出现错误</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p><img data-src="https://img-blog.csdnimg.cn/20201005162316181.png#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>没有引入依赖包 npm</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p>输入</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token function">npm</span> <span class="token function">install</span></pre></td></tr></tbody></table></figure><p>即可</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Vue </category>
<category> 前端Vue中常见问题集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>01web开发需要了解的技术2020-09-02</title>
<link href="computer-science/vue/vue-study1/01web%E5%BC%80%E5%8F%91%E9%9C%80%E8%A6%81%E4%BA%86%E8%A7%A3%E7%9A%84%E6%8A%80%E6%9C%AF2020-09-02/"/>
<url>computer-science/vue/vue-study1/01web%E5%BC%80%E5%8F%91%E9%9C%80%E8%A6%81%E4%BA%86%E8%A7%A3%E7%9A%84%E6%8A%80%E6%9C%AF2020-09-02/</url>
<content type="html"><![CDATA[<p>日期:2020——09——02<br>IT 人:小海豚<br>学习内容:<br>大数据<br> oop(面向对象的编程)<br>ood(面向对象的设计)<br>web 开发:<br>Html<br>Js(JavaScript)面向对象语言<br> Css<br> 前端框架:<br>Vue(js 库与后端的一套接口),jquery,react<br> 组件库:<br>Element UI(界面) 常与(VUE 框架一起)<br>Easy UI(界面)</p><p>工具:<br>测试集成在开发过程中<br>移动布局<br> webscocket 协议<br> Git<br> 测试 / 调试工具<br> firebug,postmon<br> 后端:<br>java,python,C#,mysql (构建)<br> 后端框架<br> jsp/selvlet<br>ssm 框架(spring,struts,mybatis)<br>Spring boost:最新框架</p><p>前端后端公共技术<br> svn/git 工具</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Vue </category>
<category> 初学Vue框架 </category>
</categories>
<tags>
<tag> VUE </tag>
</tags>
</entry>
<entry>
<title>08django---的装换器</title>
<link href="computer-science/python/django/course-1/08django-%E7%9A%84%E8%A3%85%E6%8D%A2%E5%99%A8/"/>
<url>computer-science/python/django/course-1/08django-%E7%9A%84%E8%A3%85%E6%8D%A2%E5%99%A8/</url>
<content type="html"><![CDATA[<p>日期:20019——10——07<br>IT 人:小海豚<br>学习内容:<br>装换器<br><span class="exturl" data-url="aHR0cHM6Ly9uZXdzLjE2My5jb20vMTkvMDQwNS8wOC9FQzAxN1JGSzAwMDE4OTlPLmh0bWw="> https://news.163.com/19/0405/08/EC017RFK0001899O.html</span></p><p><span class="exturl" data-url="aHR0cHM6Ly9uZXdzLjE2My5jb20vMTkvMDQwNS8wOC9FQzAxSFNTVDAwMDE4OUZILmh0bWw=">https://news.163.com/19/0405/08/EC01HSST000189FH.html</span></p><p>在 app bookapp 的 urls 中<br><img data-src="https://img-blog.csdnimg.cn/20201005160601964.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>注意:<html> 表示可以是任何字母<br>在 app bookapp 的 views 中写入</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160613503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在项目的 urls 中修改以下</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160624600.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在浏览器中输入网址<br><span class="exturl" data-url="aHR0cDovLzEyNy4wLjAuMTo4MDAwLzE5LzA0MDUvMDgvRUMwMUhTU1QwMDAxODlGSC5odG1s"> http://127.0.0.1:8000/19/0405/08/EC01HSST000189FH.html</span></p><p><img data-src="https://img-blog.csdnimg.cn/20201005160639658.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>地址装唤器装换<br>字符串 ——》变量接收 ——》传递 path 中的 <html> 变量 ——》在 app bookapp 中的 index 函数的 html 变量接收到 ——》在 format 中输出地址信息<br>第二个地址<br>在浏览器中输入<br><span class="exturl" data-url="aHR0cDovLzEyNy4wLjAuMTo4MDAwLzE5LzA0MDUvMDgvRUMwMTdSRkswMDAxODk5Ty5odG1s"> http://127.0.0.1:8000/19/0405/08/EC017RFK0001899O.html</span></p><p><img data-src="https://img-blog.csdnimg.cn/20201005160650493.png#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>07django--path的语法</title>
<link href="computer-science/python/django/course-1/07django-path%E7%9A%84%E8%AF%AD%E6%B3%95/"/>
<url>computer-science/python/django/course-1/07django-path%E7%9A%84%E8%AF%AD%E6%B3%95/</url>
<content type="html"><![CDATA[<p>日期:2019——10——06<br>IT 人:小海豚<br>学习内容:<br>Path 的语法<br>从 django2.1 以后用 path 之前用的是 url<br> 标准语法<br> Path (route,view,name=None,**kwargs)<br>Route:<br> 端口以后 url 的地址,到 / 结束,表示路径<br> View:<br> 表示路径匹配成功后,需要调用的视图,必须是个函数如果是 class 的话,必须要用 as_view () 函数装换为函数<br> name:<br>表示别名<br> **kwargs:<br>表示一个字典</p><p>前面两个是必选项<br>创建的 newwebsite002 是之前的,查看 06django<br> 教程<br>在之前的 views 不变<br><img data-src="https://img-blog.csdnimg.cn/20201005160009690.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在之前创建的 app book 的 urls 中</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160022822.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>打开项目所在地址 cmd 开启服务器</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160032813.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>成功</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160042503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>证明服务器已经跑起来了<br>继续刷新</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160052289.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>修改 app bookapp 中的 urls</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160101176.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>在输入网址查看<br><span class="exturl" data-url="aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luZGV4"> http://127.0.0.1:8000/index</span></p><p><img data-src="https://img-blog.csdnimg.cn/20201005160110848.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>输入 http://127.0.0.1:8000/index/web/<br> 查看</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160119998.png#pic_center" alt="在这里插入图片描述"></p><p>也可以写成多分级目录<br>修改 app bookapp 中的 urls<br> 注释 #path ('',views.index,name='index'),</p><p><img data-src="https://img-blog.csdnimg.cn/2020100516012813.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在浏览器中执行<br><span class="exturl" data-url="aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luZGV4L3dlYi9hL2IvYy9pbmRleC5odG1sLw=="> http://127.0.0.1:8000/index/web/a/b/c/index.html/</span></p><p><img data-src="https://img-blog.csdnimg.cn/2020100516013813.png#pic_center" alt="在这里插入图片描述"></p><p>成功<br>注意:当出现路径相同时,会自动匹配第一个之后机就默认不匹配了</p><p><img data-src="https://img-blog.csdnimg.cn/2020100516014867.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>结果一直是:</p><p><img data-src="https://img-blog.csdnimg.cn/20201005160156332.png#pic_center" alt="在这里插入图片描述"></p><p></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>06django--url的讲解</title>
<link href="computer-science/python/django/course-1/06django-url%E7%9A%84%E8%AE%B2%E8%A7%A3/"/>
<url>computer-science/python/django/course-1/06django-url%E7%9A%84%E8%AE%B2%E8%A7%A3/</url>
<content type="html"><![CDATA[<p>日期:2019——09——28<br>IT 人:小海豚<br>学习内容:<br>统一资源定位器<br>协议 protocol:http,https,ftp<br> 域名 hostname + 端口 port<br> 路径 path<br> 参数 parmeters<br> 查询 query<br> 描点 fragment<br>django 中配置 urls<br> 创建一个 newwebsite002 的 django 文件和 book 的 app<br> 命令行输入</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>django-admin startproject newwebsite002</pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token builtin class-name">cd</span> newwebsite002</pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>ptrhon manage.py startapp book</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20201005155244250.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>显示出</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155505621.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>在浏览器中检查<br>开启服务器</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155519786.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>成功</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155528944.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在 setting 中配置注册 app book<br> 添加 'book',</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155537408.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在 app views 视图中写入两个函数</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155546495.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在 app book 中创建一个 urls 文件<br>进行配置</p><p><img data-src="https://img-blog.csdnimg.cn/202010051555572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在 app book urls 中编码</p><p><img data-src="https://img-blog.csdnimg.cn/2020100515560640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p></p><p>在项目中做个映射<br>在项目 newwebsite002 的 urls 中编码</p><p><br><img data-src="https://img-blog.csdnimg.cn/20201005155615113.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>成功</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155623854.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>切换网址后</p><p><img data-src="https://img-blog.csdnimg.cn/20201005155631652.png#pic_center" alt="在这里插入图片描述"></p><p>表示成功<br>注意:在 path 语句中在路径中要加上 /</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>05django--mvt介绍</title>
<link href="computer-science/python/django/course-1/05django-mvt%E4%BB%8B%E7%BB%8D/"/>
<url>computer-science/python/django/course-1/05django-mvt%E4%BB%8B%E7%BB%8D/</url>
<content type="html"><![CDATA[<p>日期:20019——09——27</p><p>IT 人:小海豚</p><p>学习内容:</p><p>django 的设计模式</p><p>Models 作用</p><p>封装数据库,</p><p>对数据库进行访问,</p><p>对数据进行增删改查,</p><p>Views 作用</p><p>进行业务逻辑的处理,</p><p>teplates 作用</p><p>模板,主要进行展示,前端</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>04django--整体讲解</title>
<link href="computer-science/python/django/course-1/04django-%E6%95%B4%E4%BD%93%E8%AE%B2%E8%A7%A3/"/>
<url>computer-science/python/django/course-1/04django-%E6%95%B4%E4%BD%93%E8%AE%B2%E8%A7%A3/</url>
<content type="html"><![CDATA[<p>日期:2019——09——27<br>IT 人:小海豚<br>学习内容:<br>导包的文件</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154700648.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>一般都不用但不能够删除</p><p><img data-src="https://img-blog.csdnimg.cn/2020100515471044.png#pic_center" alt=""></p><p>settings 配置文件<br> urls 统一资源编译器<br> wsgi 网管接口<br> app 中<br> News<br> 大部分功能在 app news 中完成<br> Mingrations</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154746558.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>数据库映射时使用,一般不修改<br><img data-src="https://img-blog.csdnimg.cn/20201005154754927.png#pic_center" alt="在这里插入图片描述"></p><p></p><p>admin 管理文件<br> apps 定义 app 名字<br> models 模型写数据库<br> tests 测试文件<br> urls 配置 app 的 urls,和项目的 urls 进行交互<br> views 视图文件<br> Bd.sqlite3 默认使用的数据库<br> Manage.py 项目管理文件</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>03django--带有模板的html文件百度</title>
<link href="computer-science/python/django/course-1/03django-%E5%B8%A6%E6%9C%89%E6%A8%A1%E6%9D%BF%E7%9A%84html%E6%96%87%E4%BB%B6%E7%99%BE%E5%BA%A6/"/>
<url>computer-science/python/django/course-1/03django-%E5%B8%A6%E6%9C%89%E6%A8%A1%E6%9D%BF%E7%9A%84html%E6%96%87%E4%BB%B6%E7%99%BE%E5%BA%A6/</url>
<content type="html"><![CDATA[<p>日期:2019——09——27<br>IT 人:小海豚<br>学习内容:<br>启动服务器</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154029546.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>在上一次创建的 app news 中创建一个<br>模板文件<br><img data-src="https://img-blog.csdnimg.cn/20201005154040619.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>叫<br><img data-src="https://img-blog.csdnimg.cn/2020100515405267.png#pic_center" alt="在这里插入图片描述"></p><p>在创建一个 html 文件<br><img data-src="https://img-blog.csdnimg.cn/20201005154103843.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>叫 baidu</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154113203.png#pic_center" alt="在这里插入图片描述"></p><p>把百度拉入模板文件中,生成目录</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154122534.png#pic_center" alt="在这里插入图片描述"></p><p>打开浏览器搜索百度</p><p><img data-src="https://img-blog.csdnimg.cn/20201005154129176.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/2020100515414714.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>复制全部源代码<br>在 html 中使用 baidu<br><img data-src="https://img-blog.csdnimg.cn/20201005154200775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p>修改视图 app news 中的 views</p><p>效果生成<br><img data-src="https://img-blog.csdnimg.cn/20201005154212477.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20201005154221255.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>工具教程网址</title>
<link href="%E5%B7%A5%E5%85%B7%E6%95%99%E7%A8%8B%E7%BD%91%E5%9D%80/"/>
<url>%E5%B7%A5%E5%85%B7%E6%95%99%E7%A8%8B%E7%BD%91%E5%9D%80/</url>
<content type="html"><![CDATA[<p></p><div class="links"><div class="item" style="--block-color:#e9546b;" title="Vue官网教程"><span class="exturl image" data-url="aHR0cHM6Ly9jbi52dWVqcy5vcmcvdjIvZ3VpZGUv" data-background-image="https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=vue&step_word=&hs=0&pn=1&spn=0&di=3300&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=3866427781%2C859233610&os=4083456895%2C2180831939&simid=150579757%2C808925494&adpicid=0&lpn=0&ln=1859&fr=&fmq=1601365324969_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwww.linchaoqun.com%3A6003%2F2018-2-23%2Fa67cb6e0c68988848f41c1b92f8a569477c80920adb86b1c3a252d92d1cc07f5.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bstgviw5q7g_z%26e3Bv54AzdH3Fip4sAzdH3Fv4fAzdH3Fv5gpjgp_z%26e3B3fr%3F4jg7%3De7j3f%26t1%3Dum0lu0jj-lk80-9dbb-kdca-0n8djcmkd9wl&gsm=2&rpstart=0&rpnum=0&islist=&querylist=&force=undefinedimages/avatar.jpg"></span> <div class="info"> <span class="exturl title" data-url="aHR0cHM6Ly9jbi52dWVqcy5vcmcvdjIvZ3VpZGUv">Vue官网中文教程</span> <p class="desc">Vue官网中文教程</p> </div></div><div class="item" style="--block-color:#666;" title="Vue菜鸟教程"><span class="exturl image" data-url="aHR0cHM6Ly93d3cucnVub29iLmNvbS92dWUyL3Z1ZS10dXRvcmlhbC5odG1s" data-background-image="https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=vue&step_word=&hs=0&pn=1&spn=0&di=3300&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=3866427781%2C859233610&os=4083456895%2C2180831939&simid=150579757%2C808925494&adpicid=0&lpn=0&ln=1859&fr=&fmq=1601365324969_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwww.linchaoqun.com%3A6003%2F2018-2-23%2Fa67cb6e0c68988848f41c1b92f8a569477c80920adb86b1c3a252d92d1cc07f5.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bstgviw5q7g_z%26e3Bv54AzdH3Fip4sAzdH3Fv4fAzdH3Fv5gpjgp_z%26e3B3fr%3F4jg7%3De7j3f%26t1%3Dum0lu0jj-lk80-9dbb-kdca-0n8djcmkd9wl&gsm=2&rpstart=0&rpnum=0&islist=&querylist=&force=undefinedimages/avatar.jpg"></span> <div class="info"> <span class="exturl title" data-url="aHR0cHM6Ly93d3cucnVub29iLmNvbS92dWUyL3Z1ZS10dXRvcmlhbC5odG1s">Vue菜鸟教程</span> <p class="desc">https://www.runoob.com/vue2/vue-tutorial.html</p> </div></div><div class="item" style="--block-color:#9d5b8b;" title="Redis官方中文教程"><span class="exturl image" data-url="aHR0cDovL3d3dy5yZWRpcy5jbi8=" data-background-image="https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=vue&step_word=&hs=0&pn=1&spn=0&di=3300&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=3866427781%2C859233610&os=4083456895%2C2180831939&simid=150579757%2C808925494&adpicid=0&lpn=0&ln=1859&fr=&fmq=1601365324969_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwww.linchaoqun.com%3A6003%2F2018-2-23%2Fa67cb6e0c68988848f41c1b92f8a569477c80920adb86b1c3a252d92d1cc07f5.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bstgviw5q7g_z%26e3Bv54AzdH3Fip4sAzdH3Fv4fAzdH3Fv5gpjgp_z%26e3B3fr%3F4jg7%3De7j3f%26t1%3Dum0lu0jj-lk80-9dbb-kdca-0n8djcmkd9wl&gsm=2&rpstart=0&rpnum=0&islist=&querylist=&force=undefinedimages/avatar.jpg"></span> <div class="info"> <span class="exturl title" data-url="aHR0cDovL3d3dy5yZWRpcy5jbi8=">Redis官方中文教程</span> <p class="desc">Redis官方中文教程</p> </div></div><div class="item" style="--block-color:#9d5b8b;" title="Jmeter官方教程"><span class="exturl image" data-url="aHR0cHM6Ly9qbWV0ZXIuYXBhY2hlLm9yZy91c2VybWFudWFsL2dldC1zdGFydGVkLmh0bWw=" data-background-image="https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=vue&step_word=&hs=0&pn=1&spn=0&di=3300&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=3866427781%2C859233610&os=4083456895%2C2180831939&simid=150579757%2C808925494&adpicid=0&lpn=0&ln=1859&fr=&fmq=1601365324969_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwww.linchaoqun.com%3A6003%2F2018-2-23%2Fa67cb6e0c68988848f41c1b92f8a569477c80920adb86b1c3a252d92d1cc07f5.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bstgviw5q7g_z%26e3Bv54AzdH3Fip4sAzdH3Fv4fAzdH3Fv5gpjgp_z%26e3B3fr%3F4jg7%3De7j3f%26t1%3Dum0lu0jj-lk80-9dbb-kdca-0n8djcmkd9wl&gsm=2&rpstart=0&rpnum=0&islist=&querylist=&force=undefinedimages/avatar.jpg"></span> <div class="info"> <span class="exturl title" data-url="aHR0cHM6Ly9qbWV0ZXIuYXBhY2hlLm9yZy91c2VybWFudWFsL2dldC1zdGFydGVkLmh0bWw=">Jmeter官方教程</span> <p class="desc">Jmeter官方教程</p> </div></div><div class="item" style="--block-color:#9d5b8b;" title="優萌初華"><span class="exturl image" data-url="aHR0cHM6Ly9zaG9rYS5sb3N0eXUubWU=" data-background-image="/images/404.png"></span> <div class="info"> <span class="exturl title" data-url="aHR0cHM6Ly9zaG9rYS5sb3N0eXUubWU=">優萌初華</span> <p class="desc">琉璃的医学 & 编程笔记</p> </div></div></div><p></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<tags>
<tag> 官网教程 </tag>
</tags>
</entry>
<entry>
<title>01Springboot启动时端口被占用</title>
<link href="computer-science/java/springboot/springboot-error1/01Springboot%E5%90%AF%E5%8A%A8%E6%97%B6%E7%AB%AF%E5%8F%A3%E8%A2%AB%E5%8D%A0%E7%94%A8/"/>
<url>computer-science/java/springboot/springboot-error1/01Springboot%E5%90%AF%E5%8A%A8%E6%97%B6%E7%AB%AF%E5%8F%A3%E8%A2%AB%E5%8D%A0%E7%94%A8/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>Springboot 在启动时出现端口 8888 被占用</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p>Springboot 在启动时出现端口被占用</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>错误提示:</pre></td></tr><tr><td data-num="2"></td><td><pre>Description:</pre></td></tr><tr><td data-num="3"></td><td><pre>Web server failed to start. Port <span class="token number">8888</span> was already <span class="token keyword">in</span> use.</pre></td></tr><tr><td data-num="4"></td><td><pre>Action:</pre></td></tr><tr><td data-num="5"></td><td><pre>Identify and stop the process that<span class="token string">'s listening on port 8888 or configure this application to listen on another port.</span></pre></td></tr><tr><td data-num="6"></td><td><pre>Disconnected from the target VM, address: '<span class="token number">127.0</span>.0.1:54879<span class="token string">', transport: '</span>socket'</pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token punctuation">[</span>ERROR<span class="token punctuation">]</span> Command execution failed.</pre></td></tr><tr><td data-num="8"></td><td><pre>Command execution failed.</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20200928120616508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>由于之前开启 vue 项目启动,再启动后端时会报错。</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><figure class="highlight powershell"><figcaption data-lang="PowerShell"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>netstat <span class="token operator">-</span>aon<span class="token punctuation">|</span>findstr <span class="token string">"9000"</span></pre></td></tr><tr><td data-num="2"></td><td><pre>查看端口号运行进程</pre></td></tr><tr><td data-num="3"></td><td><pre>taskkill <span class="token operator">/</span>pid 进程号 <span class="token operator">-</span>f`</pre></td></tr></tbody></table></figure><p><img data-src="https://img-blog.csdnimg.cn/20200928121040878.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><hr><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> SpringBoot框架常见错误集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>01Springboot小白详细的安装教程</title>
<link href="computer-science/java/springboot/springboot-study1/01Springboot%E5%B0%8F%E7%99%BD%E8%AF%A6%E7%BB%86%E7%9A%84%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/"/>
<url>computer-science/java/springboot/springboot-study1/01Springboot%E5%B0%8F%E7%99%BD%E8%AF%A6%E7%BB%86%E7%9A%84%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</url>
<content type="html"><![CDATA[<p><hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"></p><h1 id="前言"><a class="anchor" href="#前言">#</a> 前言</h1><p>初学 Springboot 的小白刚安装了 IDEA 分享一下安装教程吧<br> <hr style="border:solid; width:100px; height:1px;" color=#000000 size=1"></p><h1 id="一-idea是什么"><a class="anchor" href="#一-idea是什么">#</a> 一、IDEA 是什么?</h1><p>IDEA 全称 IntelliJ IDEA,是 java 编程语言开发的集成环境。IntelliJ 在业界被公认为最好的 java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具 (git、svn 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java,Kotlin 等少数语言。<br>附上百度百科网址: <span class="exturl" data-url="aHR0cHM6Ly9iYWlrZS5iYWlkdS5jb20vaXRlbS9JbnRlbGxpSiUyMElERUEvOTU0ODM1Mz9mcm9tdGl0bGU9aWRlYSZhbXA7ZnJvbWlkPTE2NzE4MDMmYW1wO2ZyPWFsYWRkaW4=">百度百科了解 IDEA</span><br>IDEA 官网:<span class="exturl" data-url="aHR0cHM6Ly93d3cuamV0YnJhaW5zLmNvbS8=">IDEA 官网</span></p><h1 id="二-安装步骤"><a class="anchor" href="#二-安装步骤">#</a> 二、安装步骤</h1><p>教程采用了微信公众号:软件安装管家<br>很强大,可以安装各种软件</p><h2 id="1安装springboot"><a class="anchor" href="#1安装springboot">#</a> 1. 安装 SpringBoot</h2><p><img data-src="https://img-blog.csdnimg.cn/20200928103032379.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103103351.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103120858.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103154977.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103207498.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103220927.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103302209.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103329288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20200928103337491.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103345331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103357647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103406738.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103413982.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103423218.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020092810343116.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103437688.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103448506.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103456333.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/2020092810350573.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103522445.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20200928103533260.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020092810354238.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103550353.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103558616.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103608978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020092810361991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><p><img data-src="https://img-blog.csdnimg.cn/20200928103628254.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103637757.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/2020092810364676.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103653875.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><img data-src="https://img-blog.csdnimg.cn/20200928103703420.png#pic_center" alt="在这里插入图片描述"></p><h2 id="2安装maven"><a class="anchor" href="#2安装maven">#</a> 2. 安装 maven</h2><p>安装 maven<br>maven 下载官网地址:<span class="exturl" data-url="aHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dp">maven 下载官网地址</span></p><p><img data-src="https://img-blog.csdnimg.cn/20200928103807392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928103948338.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述">解压后<br><img data-src="https://img-blog.csdnimg.cn/20200928103959973.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述">配置环境变量</p><p><img data-src="https://img-blog.csdnimg.cn/2020092810403492.png#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928104043979.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928104055378.png#pic_center" alt="在这里插入图片描述">成功<br>进入 Springboot 官网中<br> Springboot 官网:<span class="exturl" data-url="aHR0cHM6Ly9zcHJpbmcuaW8vcHJvamVjdHMvc3ByaW5nLWJvb3Q=">Springboot 官网</span><br>创建项目网址:<br><span class="exturl" data-url="aHR0cHM6Ly9zdGFydC5zcHJpbmcuaW8v">创建项目网址</span><br><img data-src="https://img-blog.csdnimg.cn/20200928104116509.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br><img data-src="https://img-blog.csdnimg.cn/20200928104818559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br>添加架包<br>用 idea 打开制定架包<br>开启框架,开始代码</p><h1 id="总结"><a class="anchor" href="#总结">#</a> 总结</h1><p>安装完成,开始代码之旅吧<br>如有问题请在下方评论学习,共同进步</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Java </category>
<category> SpringBoot框架 </category>
<category> 小白学SpringBoot框架 </category>
</categories>
<tags>
<tag> SpringBoot </tag>
</tags>
</entry>
<entry>
<title>01vue标签指令</title>
<link href="computer-science/vue/vue-study1/01vue%E6%A0%87%E7%AD%BE%E6%8C%87%E4%BB%A4/"/>
<url>computer-science/vue/vue-study1/01vue%E6%A0%87%E7%AD%BE%E6%8C%87%E4%BB%A4/</url>
<content type="html"><![CDATA[<p><img data-src="https://img-blog.csdnimg.cn/20200928085720982.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Vue </category>
<category> 初学Vue框架 </category>
</categories>
<tags>
<tag> VUE </tag>
</tags>
</entry>
<entry>
<title>01Django中出现OperationalError问题</title>
<link href="computer-science/python/django/django-error1/01Django%E4%B8%AD%E5%87%BA%E7%8E%B0OperationalError%E9%97%AE%E9%A2%98/"/>
<url>computer-science/python/django/django-error1/01Django%E4%B8%AD%E5%87%BA%E7%8E%B0OperationalError%E9%97%AE%E9%A2%98/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>Django 中连接数据库时出现错误,采用了一个大牛的博客解决的,这里附上链接 https://blog.csdn.net/Wathet_blue/article/details/105401717?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242</p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p>出现错误!OperationalError: (1366, “Incorrect string value: ‘\xE4\xB9\x8B\xE7\xBE\x8E’ for column ‘name’ at row 1”)</p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>数据库的编码规则没有使用 utf8,而在存储数据时添加了中文数据,导致报错。</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p>删除数据库 (有数据先备份)</p><figure class="highlight sql"><figcaption data-lang="SQL"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token keyword">drop</span> <span class="token keyword">database</span> <span class="token punctuation">[</span>database_name<span class="token punctuation">]</span><span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><p>指定编码重建数据库 或者 修改数据库编码后重建数据库</p><figure class="highlight sql"><figcaption data-lang="SQL"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token keyword">create</span> <span class="token keyword">database</span> <span class="token punctuation">[</span>database_name<span class="token punctuation">]</span> <span class="token keyword">default</span> <span class="token keyword">character</span> <span class="token keyword">set</span> utf8 <span class="token keyword">collate</span> utf8_general_ci<span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><figure class="highlight python"><figcaption data-lang="python"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>show variables like <span class="token string">'character%'</span><span class="token punctuation">;</span><span class="token operator">//</span> 查看mysql的编码</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token builtin">set</span> character_set_client<span class="token operator">=</span>utf8<span class="token punctuation">;</span><span class="token operator">//</span> 设置客户端的编码为utf8</pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token builtin">set</span> character_set_connection<span class="token operator">=</span>utf8<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token builtin">set</span> character_set_database<span class="token operator">=</span>utf8<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token builtin">set</span> character_set_results<span class="token operator">=</span>utf8<span class="token punctuation">;</span> </pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token builtin">set</span> character_set_server<span class="token operator">=</span>utf8<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token builtin">set</span> character_set_system<span class="token operator">=</span>utf8<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="8"></td><td><pre>create database <span class="token punctuation">[</span>database_name<span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token operator">//</span> 新创建数据库使用的编码规则是utf8</pre></td></tr></tbody></table></figure><p>重新迁移数据库</p><figure class="highlight powershell"><figcaption data-lang="PowerShell"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>python manage<span class="token punctuation">.</span>py makemigrations</pre></td></tr><tr><td data-num="2"></td><td><pre>python manage<span class="token punctuation">.</span>py migrate</pre></td></tr></tbody></table></figure><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 前端Django中常见的错误集合 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>01vue运行出错Cannot find module 'stylus'</title>
<link href="computer-science/vue/vue-error1/01vue%E4%B8%AD%E5%8C%85%E5%AF%BC%E5%85%A5%E5%87%BA%E9%94%99code-ENOLOCAL/"/>
<url>computer-science/vue/vue-error1/01vue%E4%B8%AD%E5%8C%85%E5%AF%BC%E5%85%A5%E5%87%BA%E9%94%99code-ENOLOCAL/</url>
<content type="html"><![CDATA[<h1 id="项目场景"><a class="anchor" href="#项目场景">#</a> 项目场景:</h1><p>本人小白记录在初学 vue 中的一些小问题,在使用 npm run serve 运行 vue 项目时,出现错误</p><p><hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"></p><h1 id="问题描述"><a class="anchor" href="#问题描述">#</a> 问题描述:</h1><p>出现错误<br><img data-src="https://img-blog.csdnimg.cn/20200928080259916.png#pic_center" alt="在这里插入图片描述"></p><h1 id="原因分析"><a class="anchor" href="#原因分析">#</a> 原因分析:</h1><p>没有引入相关依赖</p><h1 id="解决方案"><a class="anchor" href="#解决方案">#</a> 解决方案:</h1><p>需要执行</p><figure class="highlight powershell"><figcaption data-lang="PowerShell"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>npm install</pre></td></tr></tbody></table></figure><p>引入相关依赖即可解决问题</p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Vue </category>
<category> 前端Vue中常见问题集合 </category>
</categories>
<tags>
<tag> Error </tag>
</tags>
</entry>
<entry>
<title>02django带app的网站创建</title>
<link href="computer-science/python/django/course-1/02django%E5%B8%A6app%E7%9A%84%E7%BD%91%E7%AB%99%E5%88%9B%E5%BB%BA/"/>
<url>computer-science/python/django/course-1/02django%E5%B8%A6app%E7%9A%84%E7%BD%91%E7%AB%99%E5%88%9B%E5%BB%BA/</url>
<content type="html"><![CDATA[<p><span class="label">python</span><br><span class="label primary"> 前端框架</span><br><img data-src="https://img-blog.csdnimg.cn/20191006171226655.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p><figure class="highlight java"><figcaption data-lang="java"><span>标题</span></figcaption><table><tbody><tr class="marked"><td data-num="1"></td><td><pre><span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Scanner</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token class-name">Scanner</span> in <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span> <span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token comment">// 输入 Scan 之后,按下键盘 Alt + “/” 键,Eclipse 下自动补全。</span></pre></td></tr><tr><td data-num="5"></td><td><pre></pre></td></tr><tr class="marked"><td data-num="6"></td><td><pre><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span>println <span class="token punctuation">(</span>in<span class="token punctuation">.</span>nextLine <span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr class="marked"><td data-num="7"></td><td><pre><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span>println <span class="token punctuation">(</span><span class="token string">"Hello"</span> <span class="token operator">+</span> <span class="token string">"world."</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tbody><tr><td data-num="1"></td><td data-command="[root@localhost] $"></td><td><pre><span class="token builtin class-name">pwd</span></pre></td></tr><tr><td data-num="2"></td><td data-command=""></td><td><pre>/usr/home/chris/bin</pre></td></tr><tr><td data-num="3"></td><td data-command=""></td><td><pre><span class="token function">ls</span> -la</pre></td></tr><tr><td data-num="4"></td><td data-command="[admin@remotehost] #"></td><td><pre>total <span class="token number">2</span></pre></td></tr><tr><td data-num="5"></td><td data-command="[admin@remotehost] #"></td><td><pre>drwxr-xr-x <span class="token number">2</span> chris chris <span class="token number">11</span> Jan <span class="token number">10</span> <span class="token number">16</span>:48 <span class="token builtin class-name">.</span></pre></td></tr><tr><td data-num="6"></td><td data-command="[admin@remotehost] #"></td><td><pre>drwxr--r-x <span class="token number">45</span> chris chris <span class="token number">92</span> Feb <span class="token number">14</span> <span class="token number">11</span>:10 <span class="token punctuation">..</span></pre></td></tr><tr><td data-num="7"></td><td data-command=""></td><td><pre>-rwxr-xr-x <span class="token number">1</span> chris chris <span class="token number">444</span> Aug <span class="token number">25</span> <span class="token number">2013</span> backup</pre></td></tr><tr><td data-num="8"></td><td data-command=""></td><td><pre>-rwxr-xr-x <span class="token number">1</span> chris chris <span class="token number">642</span> Jan <span class="token number">17</span> <span class="token number">14</span>:42 deploy</pre></td></tr></tbody></table></figure><ol><li class="quiz true"><p>编译时多态主要指运算符重载与函数重载,而运行时多态主要指虚函数。</p></li><li class="quiz multi"><p>有基类 <code>SHAPE</code> ,派生类 <code>CIRCLE</code> ,声明如下变量: </p><figure class="highlight cpp"><figcaption data-lang="C++"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre>SHAPE shape1<span class="token punctuation">,</span><span class="token operator">*</span>p1<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="2"></td><td><pre>CIRCLE circle1<span class="token punctuation">,</span><span class="token operator">*</span>q1<span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><p>下列哪些项是 “派生类对象替换基类对象”。</p><ul class="options"><li class="correct"><code>p1=&circle1;</code> </li><li><code>q1=&shape1;</code></li><li class="correct"><code>shape1=circle1;</code> </li><li><code>circle1=shape1;</code></li></ul><blockquote><ul class="options"><li>✔️ 令基类对象的指针指向派生类对象</li><li>❌ 派生类指针指向基类的引用</li><li>✔️ 派生类对象给基类对象赋值</li><li>❌ 基类对象给派生类对象赋值</li></ul></blockquote></li><li class="quiz"><p>下列叙述正确的是 <span class="gap"></span> 。</p><ul class="options"><li>虚函数只能定义成无参函数</li><li>虚函数不能有返回值</li><li>能定义虚构造函数</li><li class="correct">A、B、C 都不对</li></ul></li><li class="quiz fill"><p>如果定义 <code>int e=8; double f=6.4, g=8.9;</code> ,则表达式 <code>f+int (e/3*int (f+g)/2)%4</code> 的值为 <span class="gap">9.4</span>。</p><blockquote><p>注意运算顺序和数据类型<br><span class="mistake"> 8.4</span></p></blockquote></li></ol><p>😘<br>💍<br>🎶</p><p><span class="label">python</span><br><span class="label primary">primary</span><br><span class="label info">info</span><br><span class="label success">✔️success</span><br><span class="label warning">warning</span><br><span class="label danger">💔danger</span></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>01django-hello world简单例子</title>
<link href="computer-science/python/django/course-1/01django-hello-world%E7%AE%80%E5%8D%95%E4%BE%8B%E5%AD%90/"/>
<url>computer-science/python/django/course-1/01django-hello-world%E7%AE%80%E5%8D%95%E4%BE%8B%E5%AD%90/</url>
<content type="html"><![CDATA[<p><span class="label">python</span><br><span class="label primary"> 前端框架</span></p><h2 id="01django-hello-world简单例子"><a class="anchor" href="#01django-hello-world简单例子">#</a> 01django-hello world 简单例子</h2><p><strong>加粗样式</strong><br>日期:2019——09——26<br>IT 人: 小海豚 学习内容:<br>创建一个新的 django 文件 命令:</p><pre><code class="language-bash"> django—admin startproject mywebsite创建文件 开启服务器</code></pre><p><img data-src="https://img-blog.csdnimg.cn/20190927111611939.png" alt="在这里插入图片描述"></p><pre><code class="language-bash"> Python manage.py runserver</code></pre><p>启动服务器<br>成功<br><img data-src="https://img-blog.csdnimg.cn/20190927111633701.png" alt="在这里插入图片描述"><br>创建一个 views 文件 Python 的 在其中编辑<br><img data-src="https://img-blog.csdnimg.cn/20190927111715673.png" alt="在这里插入图片描述"><br>在 url 中修改<br><img data-src="https://img-blog.csdnimg.cn/20190927111722806.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1NDc1Ng==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"><br>在浏览器中进行刷新<br><img data-src="https://img-blog.csdnimg.cn/2019092711173328.png" alt="在这里插入图片描述"><br>注意:服务器要开启</p><pre><code class="language-bash">Python manage.py runserve </code></pre><pre><code> 原文出自[易百教程] 转载请保留原文链接: https://www.yiibai.com/geek/detail/1184</code></pre><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 计算机科学 </category>
<category> Python </category>
<category> Django框架 </category>
<category> 零基础学Django框架 </category>
</categories>
<tags>
<tag> Django </tag>
</tags>
</entry>
<entry>
<title>我的第一篇博客文章</title>
<link href="%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0/"/>
<url>%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0/</url>
<content type="html"><![CDATA[<p>你好! 这是你第一次使用 <strong>Markdown 编辑器</strong> 所展示的欢迎页。如果你想学习如何使用 Markdown 编辑器,可以仔细阅读这篇文章,了解一下 Markdown 的基本语法知识。</p><h2 id="新的改变"><a class="anchor" href="#新的改变">#</a> 新的改变</h2><p>我们对 Markdown 编辑器进行了一些功能拓展与语法支持,除了标准的 Markdown 编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:</p><ol><li><strong>全新的界面设计</strong> ,将会带来全新的写作体验;</li><li>在创作中心设置你喜爱的代码高亮样式,Markdown <strong>将代码片显示选择的高亮样式</strong> 进行展示;</li><li>增加了 <strong>图片拖拽</strong> 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;</li><li>全新的 <strong>KaTeX 数学公式</strong> 语法;</li><li>增加了支持<strong>甘特图的 mermaid 语法<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup></strong> 功能;</li><li>增加了 <strong>多屏幕编辑</strong> Markdown 文章功能;</li><li>增加了 <strong>焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置</strong> 等功能,功能按钮位于编辑区域与预览区域中间;</li><li>增加了 <strong>检查列表</strong> 功能。</li></ol><h2 id="功能快捷键"><a class="anchor" href="#功能快捷键">#</a> 功能快捷键</h2><p>撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd><br> 重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd><br> 加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd><br> 斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd><br> 标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd><br> 无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd><br> 有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd><br> 检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd><br> 插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd><br> 插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd><br> 插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd><br> 查找:<kbd>Ctrl/Command</kbd> + <kbd>F</kbd><br> 替换:<kbd>Ctrl/Command</kbd> + <kbd>G</kbd></p><h2 id="合理的创建标题有助于目录的生成"><a class="anchor" href="#合理的创建标题有助于目录的生成">#</a> 合理的创建标题,有助于目录的生成</h2><p>直接输入 1 次 <kbd>#</kbd>,并按下 < kbd>space</kbd > 后,将生成 1 级标题。<br>输入 2 次 <kbd>#</kbd>,并按下 < kbd>space</kbd > 后,将生成 2 级标题。<br>以此类推,我们支持 6 级标题。有助于使用 <code>TOC</code> 语法后生成一个完美的目录。</p><h2 id="如何改变文本的样式"><a class="anchor" href="#如何改变文本的样式">#</a> 如何改变文本的样式</h2><p><em>强调文本</em> <em>强调文本</em></p><p><strong>加粗文本</strong> <strong>加粗文本</strong></p><p><mark>标记文本</mark></p><p><s>删除文本</s></p><blockquote><p>引用文本</p></blockquote><p>H<sub>2</sub>O is 是液体。</p><p>2<sup>10</sup> 运算结果是 1024.</p><h2 id="插入链接与图片"><a class="anchor" href="#插入链接与图片">#</a> 插入链接与图片</h2><p>链接: <span class="exturl" data-url="aHR0cHM6Ly93d3cuY3Nkbi5uZXQv">link</span>.</p><p>图片: <img data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw" alt="Alt"></p><p>带尺寸的图片: </p><p>居中的图片: <img data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center" alt="Alt"></p><p>居中并且带尺寸的图片: </p><p>当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。</p><h2 id="如何插入一段漂亮的代码片"><a class="anchor" href="#如何插入一段漂亮的代码片">#</a> 如何插入一段漂亮的代码片</h2><p>去<span class="exturl" data-url="aHR0cHM6Ly9tcC5jc2RuLm5ldC9jb25zb2xlL2NvbmZpZ0Jsb2c=">博客设置</span>页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 <code>代码片</code> .</p><figure class="highlight javascript"><figcaption data-lang="javascript"></figcaption><table><tbody><tr><td data-num="1"></td><td><pre><span class="token comment">// An highlighted block</span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token string">'bar'</span><span class="token punctuation">;</span></pre></td></tr></tbody></table></figure><h2 id="生成一个适合你的列表"><a class="anchor" href="#生成一个适合你的列表">#</a> 生成一个适合你的列表</h2><ul><li>项目<ul><li>项目<ul><li>项目</li></ul></li></ul></li></ul><ol><li>项目 1</li><li>项目 2</li><li>项目 3</li></ol><ul class="task-list"><li class="task-list-item"><input type="checkbox" id="cbx_0" disabled="true"><label for="cbx_0"> 计划任务</label></li><li class="task-list-item"><input type="checkbox" id="cbx_1" checked="true" disabled="true"><label for="cbx_1"> 完成任务</label></li></ul><h2 id="创建一个表格"><a class="anchor" href="#创建一个表格">#</a> 创建一个表格</h2><p>一个简单的表格是这么创建的:</p><table><thead><tr><th>项目</th><th>Value</th></tr></thead><tbody><tr><td>电脑</td><td>$1600</td></tr><tr><td>手机</td><td>$12</td></tr><tr><td>导管</td><td>$1</td></tr></tbody></table><h3 id="设定内容居中-居左-居右"><a class="anchor" href="#设定内容居中-居左-居右">#</a> 设定内容居中、居左、居右</h3><p>使用 <code>:---------:</code> 居中<br>使用 <code>:----------</code> 居左<br>使用 <code>----------:</code> 居右</p><table><thead><tr><th style="text-align:center">第一列</th><th style="text-align:right">第二列</th><th style="text-align:left">第三列</th></tr></thead><tbody><tr><td style="text-align:center">第一列文本居中</td><td style="text-align:right">第二列文本居右</td><td style="text-align:left">第三列文本居左</td></tr></tbody></table><h3 id="smartypants"><a class="anchor" href="#smartypants">#</a> SmartyPants</h3><p>SmartyPants 将 ASCII 标点字符转换为 “智能” 印刷标点 HTML 实体。例如:</p><table><thead><tr><th>TYPE</th><th>ASCII</th><th><abbr title="超文本标记语言">HTML</abbr></th></tr></thead><tbody><tr><td>Single backticks</td><td><code>'Isn't this fun?'</code></td><td>'Isn't this fun?'</td></tr><tr><td>Quotes</td><td><code>"Isn't this fun?"</code></td><td>"Isn't this fun?"</td></tr><tr><td>Dashes</td><td><code>-- is en-dash, --- is em-dash</code></td><td>-- is en-dash, --- is em-dash</td></tr></tbody></table><h2 id="创建一个自定义列表"><a class="anchor" href="#创建一个自定义列表">#</a> 创建一个自定义列表</h2><dl><dt>Markdown</dt><dd>Text-to-<abbr title="超文本标记语言">HTML</abbr> conversion tool</dd><dt>Authors</dt><dd>John</dd><dd>Luke</dd></dl><h2 id="如何创建一个注脚"><a class="anchor" href="#如何创建一个注脚">#</a> 如何创建一个注脚</h2><p>一个具有注脚的文本。<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p><h2 id="注释也是必不可少的"><a class="anchor" href="#注释也是必不可少的">#</a> 注释也是必不可少的</h2><p>Markdown 将文本转换为 <abbr title="超文本标记语言">HTML</abbr>。</p><h2 id="katex数学公式"><a class="anchor" href="#katex数学公式">#</a> KaTeX 数学公式</h2><p>您可以使用渲染 LaTeX 数学表达式 <span class="exturl" data-url="aHR0cHM6Ly9raGFuLmdpdGh1Yi5pby9LYVRlWC8=">KaTeX</span>:</p><p>Gamma 公式展示 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">!</mo><mspace width="1em"></mspace><mi mathvariant="normal">∀</mi><mi>n</mi><mo>∈</mo><mi mathvariant="double-struck">N</mi></mrow><annotation encoding="application/x-tex">\Gamma(n) = (n-1)!\quad\foralln\in\mathbb N</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">Γ</span><span class="mopen">(</span><span class="mord mathdefault">n</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathdefault">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">1</span><span class="mclose">)</span><span class="mclose">!</span><span class="mspace" style="margin-right:1em;"></span><span class="mord">∀</span><span class="mord mathdefault">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">∈</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68889em;vertical-align:0em;"></span><span class="mord mathbb">N</span></span></span></span> 是通过欧拉积分</p><p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal">Γ</mi><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo><mo>=</mo><msubsup><mo>∫</mo><mn>0</mn><mi mathvariant="normal">∞</mi></msubsup><msup><mi>t</mi><mrow><mi>z</mi><mo>−</mo><mn>1</mn></mrow></msup><msup><mi>e</mi><mrow><mo>−</mo><mi>t</mi></mrow></msup><mi>d</mi><mi>t</mi><mtext> </mtext><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex">\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">Γ</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.04398em;">z</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.326242em;vertical-align:-0.9119499999999999em;"></span><span class="mop"><span class="mop op-symbol large-op" style="margin-right:0.44445em;position:relative;top:-0.0011249999999999316em;">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.414292em;"><span style="top:-1.7880500000000001em;margin-left:-0.44445em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span><span style="top:-3.8129000000000004em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">∞</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.9119499999999999em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.864108em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.04398em;">z</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">.</span></span></span></span></span></p><blockquote><p>你可以找到更多关于的信息 <strong>LaTeX</strong> 数学表达式<span class="exturl" data-url="aHR0cDovL21ldGEubWF0aC5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvNTAyMC9tYXRoamF4LWJhc2ljLXR1dG9yaWFsLWFuZC1xdWljay1yZWZlcmVuY2U="> here</span>.</p></blockquote><h2 id="新的甘特图功能丰富你的文章"><a class="anchor" href="#新的甘特图功能丰富你的文章">#</a> 新的甘特图功能,丰富你的文章</h2><pre>Error: Could not find browser revision 756035. Run "npm install" or "yarn install" to download a browser binary.</pre><ul><li>关于 <strong>甘特图</strong> 语法,参考 <span class="exturl" data-url="aHR0cHM6Ly9tZXJtYWlkanMuZ2l0aHViLmlvLw==">这儿</span>,</li></ul><h2 id="uml-图表"><a class="anchor" href="#uml-图表">#</a> UML 图表</h2><p>可以使用 UML 图表进行渲染。 <span class="exturl" data-url="aHR0cHM6Ly9tZXJtYWlkanMuZ2l0aHViLmlvLw==">Mermaid</span>. 例如下面产生的一个序列图:</p><pre>Error: Could not find browser revision 756035. Run "npm install" or "yarn install" to download a browser binary.</pre><p>这将产生一个流程图。:</p><pre>Error: Could not find browser revision 756035. Run "npm install" or "yarn install" to download a browser binary.</pre><ul><li>关于 <strong>Mermaid</strong> 语法,参考 <span class="exturl" data-url="aHR0cHM6Ly9tZXJtYWlkanMuZ2l0aHViLmlvLw==">这儿</span>,</li></ul><h2 id="flowchart流程图"><a class="anchor" href="#flowchart流程图">#</a> FLowchart 流程图</h2><p>我们依旧会支持 flowchart 的流程图:</p><pre>Error: Could not find browser revision 756035. Run "npm install" or "yarn install" to download a browser binary.</pre><ul><li>关于 <strong>Flowchart 流程图</strong> 语法,参考 <span class="exturl" data-url="aHR0cDovL2FkcmFpLmdpdGh1Yi5pby9mbG93Y2hhcnQuanMv">这儿</span>.</li></ul><h2 id="导出与导入"><a class="anchor" href="#导出与导入">#</a> 导出与导入</h2><h3 id="导出"><a class="anchor" href="#导出">#</a> 导出</h3><p>如果你想尝试使用此编辑器,你可以在此篇文章任意编辑。当你完成了一篇文章的写作,在上方工具栏找到 <strong>文章导出</strong> ,生成一个.md 文件或者.html 文件进行本地保存。</p><h3 id="导入"><a class="anchor" href="#导入">#</a> 导入</h3><p>如果你想加载一篇你写过的.md 文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,<br>继续你的创作。</p><hr class="footnotes-sep"><section class="footnotes"><ol class="footnotes-list"><li id="fn1" class="footnote-item"><p><span class="exturl" data-url="aHR0cHM6Ly9tZXJtYWlkanMuZ2l0aHViLmlvLw==">mermaid 语法说明</span> <a href="#fnref1" class="footnote-backref">↩︎</a></p></li><li id="fn2" class="footnote-item"><p>注脚的解释 <a href="#fnref2" class="footnote-backref">↩︎</a></p></li></ol></section><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
</entry>
<entry>
<title>Hello World</title>
<link href="hello-world/"/>
<url>hello-world/</url>
<content type="html"><![CDATA[<p>Welcome to <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvLw==">Hexo</span>! This is your very first post. Check <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mv">documentation</span> for more info. If you get any problems when using Hexo, you can find the answer in <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3MvdHJvdWJsZXNob290aW5nLmh0bWw=">troubleshooting</span> or you can ask me on <span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2hleG9qcy9oZXhvL2lzc3Vlcw==">GitHub</span>.</p><h2 id="quick-start"><a class="anchor" href="#quick-start">#</a> Quick Start</h2><h3 id="create-a-new-post"><a class="anchor" href="#create-a-new-post">#</a> Create a new post</h3><pre><code class="language-bash">$ hexo new "My New Post"</code></pre><p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvd3JpdGluZy5odG1s">Writing</span></p><h3 id="run-server"><a class="anchor" href="#run-server">#</a> Run server</h3><pre><code class="language-bash">$ hexo server</code></pre><p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvc2VydmVyLmh0bWw=">Server</span></p><h3 id="generate-static-files"><a class="anchor" href="#generate-static-files">#</a> Generate static files</h3><pre><code class="language-bash">$ hexo generate</code></pre><p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3MvZ2VuZXJhdGluZy5odG1s">Generating</span></p><h3 id="deploy-to-remote-sites"><a class="anchor" href="#deploy-to-remote-sites">#</a> Deploy to remote sites</h3><pre><code class="language-bash">$ hexo deploy</code></pre><p>More info: <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlvL2RvY3Mvb25lLWNvbW1hbmQtZGVwbG95bWVudC5odG1s">Deployment</span></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
</entry>
</search>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。