自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Linux常用命令

常用指令ls   显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建空文件echo 创建带有内容的文件。cat 查看文件...

2021-07-01 08:37:50 106

原创 测试基础(1)

1,测试流程:  1、测试需求分析阶段(理解需求,对业务进行学习);2、测试计划阶段(编写测试计划);3、测试设计阶段(编写测试用例,用例编写完后会进行评审);4、测试执行阶段(搭建环境、预测试、正式测试、测试结束);5、测试评估阶段(确认是否上线)。2,测试过程中遇到了不能复现的bug的时候咋办?  1、将bug的操作步骤进行记录,然后进行在不同的测试环境中多次的调试,如果还是不能复现bug将根据bug的登记进行上报...

2021-06-29 08:40:47 121

原创 python内置函数

python内置函数Python 内置函数就是 python 标准库里(语言自身携带的)函数(公共函数)。那么,接下来就来谈一谈 python 里的内置函数1、abs()此函数返回数字的绝对值。 1234Copy a = 5b = -10print(abs(a)) #输出3print(abs(b)) #输出5Copy 2、all()此函数用于判断给定的可迭代参数iterable中的所有元素是否都不为0、都不...

2021-06-04 19:23:30 231

原创 Django基础(一)-项目流程

基本流程使用命令django-admin startproject djangodemo,创建Django项目 12345678Copy |-- djangodemo| |-- __init__.py # 说明booktest是一个python包。| |-- settings.py # 项目的配置文件。| |-- urls.py # 进行url路由的配置。| |-- wsgi.py # web服务器和Django交互

2021-06-04 19:18:58 120

原创 python异常

20190517210629-异常类型自定义异常类型 1234567891011121314151617Copy # 自定义错误类型class ArgsException(Exception): def __init__(self, num, num_type): self.num = num # 用来描述参数个数 self.num_type = num_type # 用户描述参数类型..

2021-06-04 19:12:12 59

原创 测试的分类和理解

1.什么是软件测试?去检测开发出来的软件符不符合需求,符不符合预期结果2.软件测试发展历程1.软件测试就是去证明软件是正确的。2.软件测试就是去证明软件是错误的。3.软件测试就是去证明的质量符合用户需求的一系列手段。(当前阶段)3.软件测试分类按照方法分类:黑盒测试:理解为看不见内部结构,通常为检查其功能。白盒测试:看的见内部结构,检测 内部代码。灰盒测试:结合黑盒和白盒测试两种测试。按照方向分类:功能测试:对软件的功能进行测试。性能测试:压力测试,负载测试,并发测.

2021-06-04 18:49:35 76

原创 软件开发的模型

1.软件开发模型1.1 软件开发模型瀑布模型快速原型模型螺旋模型注意: 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值1.1.1瀑布模型1.瀑布模型: 如下图(1).瀑布模型的特点1).是线性模型的一种,每一个阶段只执行一次。2).文档驱动。(2).瀑布模型的优缺点优点:1).开发的各个阶段比较清晰,当前阶段完成后...

2021-06-04 18:33:32 111

原创 CS与BS 架构

CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。  C/S 架构是一种典型的两层架构,其客户端包含

2021-06-04 18:32:18 632

原创 Json模块

JSON介绍JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON 语法规则JSON是一个标记符的序列。JSON是一个序列化的对象或数组。JSON 与 JS 对象的关系很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁

2021-06-04 11:59:11 81 1

原创 主键约束和唯一性约束的区别

主键必然是唯一且不为空,但是唯一不一定是主键,而且主键只能有一个,但是唯一约束仅仅是为了保持某些列具有唯一性而已。所以可以有多列一张表里只能有一个主键约束,可以有多个唯一约束主键约束的字段不能为null,而唯一约束的字段可以为null值主键约束(PRIMARY KEY)1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。2) 是不可能(或很难)更新.3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).4) 主健可作外健,唯一索引不可;唯一性约束(

2021-06-04 11:56:06 2773

原创 Axios(四):跨域请求

在前后端开发过程中一直会伴随我们的问题就是跨域问题,因为这时候前端和后端的代码是在不同机器上运行的,两个地址不在一个域名下,这个时候前端脚本在进行axios访问的时候浏览器就会报跨域相关的错误。原因:浏览器的同源策略不允许跨域访问,所谓同源策略是指协议、域名、端口相同。1. 设置代理服务器,实现跨域请求转发方案:采用proxyTable解决。 proxyTable是什么? vue-cli提供的解决vue开发环境下跨域问题的方法,proxyTable的底层使用了http-proxy-mi

2021-06-04 11:54:58 1348

原创 Axios(三):GET和POST提交数据

GET 请求传递参数1、直接在 URL 上添加参数 123456789Copy import axios from 'axios'axios.get('/api/goods/add_info/?ID=12345&firstName=Fred&lastName=Flintstone').then(function (response) { console.log(response);}).catch(function (

2021-06-04 11:53:10 575

原创 Axios(二):API说明

Axios API 可以通过向 axios 传递相关配置来创建请求 axios配置全部参数 1Copy axios(config)Copy 123456789Copy // 发送 POST 请求axios({ method: 'post', url: '/user/12345', data: { firstName:

2021-06-04 11:51:06 88

原创 Axios(一):axios在vue中的使用教程

在 vue项目中使用axios分为局部使用和全局使用在vue中局部使用 123456789Copy import axios from 'axios'axios.get('/api/goods/add_info/?ID=12345&firstName=Fred&lastName=Flintstone').then(function (response) { console.log(response);}).catch(

2021-06-04 11:47:26 274

原创 DRF-JWT认证、权限、限流

主要以 Django+DRF + Vue的开发模式,简单介绍以 jwt作为凭证,实现 用户注册、登录 一系列流程以 Django 作为服务端环境搭建 1Copy pip install django django-cors-headers djangorestframework djangorestframework-jwtCopy 项目配置信息djangodemo/settings.py 1234567891

2021-06-04 11:35:48 729

原创 Django-图片上传

图片上传static 和 media 都是存放文件的地方,但是又有区别,以下是两个文件夹的区别和用法static定义static 是静态文件,主要存的是 CSS, JavaScript, 网站 logo 等不变的文件。配置配置settings.py 12345Copy STATIC_URL = '/static/' # 静态文件别名(相对路径) 和 绝对路径STATICFILES_DIRS = [ os.path.join(B.

2021-06-04 11:29:04 129

原创 DRF-后端跨域

前后端分离开发时,经常会遇到一个问题,那就是跨域问题,因为这时候前端和后端的代码是在不同机器上运行的,两个地址不在一个域名下,这个时候前端脚本在进行ajax访问的时候浏览器就会报跨域相关的错误。原因:浏览器的同源策略不允许跨域访问,所谓同源策略是指协议、域名、端口相同。为了解决这个问题,在前端和后台配置均可,此时,以后台django配置为例1. 安装插件pip install django-cors-headers 1Copy 2. 注册应用 .

2021-06-04 11:19:28 349

原创 DRF-数据分页

当需要展示的数据过多时,就需要将全部数据分批显示,这就需要用到分页功能Django内置分页在DRF提供的API视图中,并不支持pagination_class分页属性,因此,需要分页,只能使用django内置的分页器Paginator。Paginator 类的作用是将我们需要分页的数据分割成若干份。当我们实现化一个 Paginator 类的实例时,需要给 Paginator 传入两个参数。第一个参数是数据源,可以是一个列表、元组、以及查询结果集 QuerySet。第二个参数需要传...

2021-06-04 11:18:34 510 1

原创 vue-router

Vue.js官方提供了一套专用的路由工具库 Vue Router,其使用和配置都非常简单。安装路由可以使用npm包的方式来安装路由 1Copy cnpm install vue-router --saveCopy 其实通过Vue-cli脚手架快速搭建项目时,命令行会询问是否安装路由功能,从而并不需要额外安装路由功能通过Vue-cli脚手架搭建的项目,在src/router文件夹内部有index.js文件,打开index.js文件会看到以下引用

2021-06-04 11:12:06 124

原创 Mysql常见错误

简单对常见错误进行总结、归纳。Ubuntu系统1698 只能root用户登录Mysql一、问题描述如果mysql安装时,没有提示输入密码,则会随机分配密码,直接mysql -u root -p则无法登录,报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost 1Copy 二、解决方案 用管理员权限进入数据库 1Copy sudo .

2021-06-04 11:00:36 270

原创 Vue事件绑定以及事件修饰符

事件要理解事件绑定,就得先了解事件。浏览器是事件驱动型的,根据用户的行为触发不同的事件,根据事件执行相应的操作。我们较为熟悉的事件有三大类型:鼠标键盘事件鼠标键盘事件 事件介绍 onclick 鼠标点击某个对象 ondbclick 鼠标双击某个对象 onmousedown 某个鼠标按键被按下 onmouseup 某个鼠标按键被松开 onmousemove 鼠标被移动 onmouseover 鼠标被移到某元素之上 onmou

2021-06-04 10:57:14 341

原创 Redis命令

简单对redis 命令进行总结、归纳。键键StringString(字符串)ListList(列表)HashHash(哈希表)SetSet(集合)ZsetZSet(SortedSet_有序集合)

2021-06-04 10:52:20 40

原创 HTTP状态码

HTTP 协议之 http 状态码详解HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。HTTP 状态码被分为五大类, 目前我们使用的 HTTP 协议版本是 1.1, 支持以下的状态码。随着协议的发展,HTTP 规范中会定义更多的状态码。1xx(临时响应)表示临时响应并需要请求者继续执行操作的状

2021-06-04 10:50:44 246

原创 python变量作用域

变量的作用域 在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。 Python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。 作用域的产生 只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。 在作用域中定义的变量,一般只在该作用域中有效。 在if-elif-els

2021-06-04 10:02:26 404

原创 python高阶函数

高阶函数介绍定义当一个函数 接收 另一个函数作为参数, 它就是高阶函数示例 1234567Copy def func(a, x, y): a(x, y) # a就是传递的 函数参数f, 执行 a 相当于 执行 fdef f(x, y): print(x + y)func(f, 1, 2) # 3, 在函数f执行过程中,输出 3Copy 四大高阶函数map(func, iterable)将可..

2021-06-04 09:56:48 44

原创 python匿名函数

语法匿名函数的另一个别称是lambda表达式lambda表达式的语法: 1Copy lambda argument_list: expression argument_list是参数列表。它的结构与Python中函数(function)的参数列表是一样的。 expression是一个关于参数的表达式。表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。示例 1234567891011

2021-06-04 09:53:38 35

原创 python递归函数

定义函数调用函数自身,这种方式称为递归,这种函数称为递归函数递归函数使用过程中,需要找到不变的规律和停止递归的边界条件,因为函数自身调用自身,函数本身的结构不变,只是每次传的参数改变啦递归实现过程(扩展):利用栈的思想,先找边界条件,同时将后面的任务存起来,一直到最前面的边界条件,然后回去,每次从栈中取任务,进行计算,一直到最后一个任务取完,结果也计算完毕递归过程:递归前进段 递归边界条件 递归返回段案例讲解递归实现吸烟问题吸烟有危害,不仅仅危害人体健康,还会对社会

2021-06-04 09:51:32 55

原创 DRF-序列化与反序列化

DRF内置的序列化类,可以对整个模型类进行序列化与反序列化,简化了繁杂的工作。内置字段序列化模型类 123456789101112131415161718192021222324252627282930Copy from django.db import models# Create your models here.class Authors(models.Model): name = m

2021-06-04 09:50:06 489

原创 网络通信-长连接与短连接

简单介绍长连接与短连接的优缺点。1. 短连接:短连接client 向 server 发起连接请求 server 接到请求,双方建立连接 client 向 server 发送消息 server 回应 client 一次读写完成,此时双方任何一个都可以发起 close 操作2. 长连接:长连接client 向 server 发起连接 server 接到请求,双方建立连接 client 向 server 发送消息 server 回应 client 一次读写完成,连接不

2021-06-04 09:46:03 408

原创 Vue 引入本地资源

使用@引入:这是在组件内直接引用和普通的 html 方法一样,代码如下 1Copy <img src="@/assets/test.png" alt="test.png">Copy 使用 vue 的方法引入:这是典型的 vue 思想,使用数据来操纵 dom; 首先在组件内使用 import … from 引入 1Copy import imgUrl from '../assets/test.png';.

2021-06-04 09:44:20 880

原创 网络通信--多种方式实现并发

下面我们使用Python来实现并发的Web Server,其中采用了多进程、多线程、协程、单进程单线程非阻塞、select、epoll的方式。一、使用子进程来实现并发 Web Server 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253...

2021-06-03 19:21:36 506

原创 Django-缓存

缓存简介在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.缓存是将一些常用的数据保存到内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户。Django缓存缓存方式Django提供了

2021-06-03 19:14:17 758

原创 Vue组件间的通信方式

前言组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有以下几种关系:1460000019208629如上图所示,A 和 B、B 和 C、B 和 D 都是父子关系,C 和 D 是兄弟关系,A 和 C 是隔代关系(可能隔多代)。针对不同的使用场景,如何选择行之有效的通信方式?这是我们所要探讨的主题。本文总结了 vue 组件间通信的几种方式,如props/$emit、$emit/$on、vuex、$paren.

2021-06-03 19:06:34 42

原创 JWT生成,认证

DRF框架的一系列功能:认证、权限、限流,都是依赖于JWT。整个流程就是这样的: 客户端发送用户名和密码到服务端, 验证通过,生成JWT 返回JWT给客户端 下次,客户端发送请求时,携带JWT,一般是在请求头里加入Authorization,并加上JWT标注: 1234Copy { headers: { 'Authorization': 'JWT ' + token}Copy 服务端会验证 tok

2021-06-03 18:50:47 322

原创 Python自动化测试

写好了一个项目之后,要确定各个模块是不是稳定运行,有没有bug,比如一个项目有100个路由,可以手动一个一个URL的输入,查看响应有没有毛病,但这样不符合程序员的逼格。由此,诞生了单元测试与集成测试。python unittestunittest是python内置的用于测试代码的模块,无需安装, 使用简单方便。unittest 简介unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunnerunittest case的运行.

2021-06-03 18:43:04 87

原创 Git命令

创建仓库git initgit init命令创建一个新的 Git 仓库。它用来将已存在但还没有版本控制的项目转换成一个 Git 仓库,或者创建一个空的新仓库。大多数Git命令在未初始化的仓库中都是无法使用的,所以这就是你运行新项目的第一个命令了。运行git init命令会在你项目的根目录下创建一个新的.git目录,其中包含了你项目必需的所有元数据。除了.git目录之外,已经存在的项目不会被改变(Git 不强制每个子目录中都有一个.git目录)。 1Copy ...

2021-06-03 11:57:41 44

原创 Python环境配置

本篇文章将介绍如何在本地搭建Python开发环境。Python可应用于多平台包括 Linux 和 Mac OS X。你可以通过终端窗口输入 “python” 命令来查看本地是否已经安装Python以及Python的安装版本。Python环境配置 12345678910111213141516Copy # ubuntusudo apt-get install python3-pipsudo apt-get install pyt

2021-05-31 17:34:36 154

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除