自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多任务-协程(02-生成器)

yield 生成器

2022-10-16 22:25:48 237 1

原创 多任务-协程(01-迭代器)

注意,当我们已经迭代完最后一个数据之后,再次调用next()函数会抛出StopIteration的异常,来告诉我们所有数据都已迭代完成,不用再执行next()函数了。

2022-10-16 16:40:34 277

原创 DeprecationWarning: Using or importing the ABCs from ‘collections‘ instead of from ‘collections.abc‘

报错

2022-10-16 15:35:18 569

原创 多任务-进程multiprocessing

1)如果block使用默认值,且没有设置timeout(单位秒),消息列队如果为空,此时程序将被阻塞(停在读取状态),直到从消息列队读到消息为止,如果设置了timeout,则会等待timeout秒,若还没读取到任何消息,则抛出"Queue.Empty"异常;当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。

2022-09-04 18:18:57 187

原创 多任务-线程-thread模块

而线程调度将自行选择一个线程执行。而创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,交给python虚拟机进行调度,当该线程获得执行的机会时,就会调用run方法执行线程。如果此时另一个线程试图获得这个锁,该线程就会变为“blocked”状态,称为“阻塞”,直到拥有锁的线程调用锁的release()方法释放锁之后,锁进入“unlocked”状态。④.同理其他线程在对g_num进行修改时,都要先上锁,处理完后再解锁,在上锁的整个过程中不允许其他线程访问,就保证了数据的正确性。

2022-09-04 11:42:35 126

原创 python学习-网络UDP 和网络TCP

UDP TCP

2022-08-28 22:38:54 810

原创 python学习-飞机大战

一、pygame正确安装1.安装:pip install pygame2.验证安装:python -m pygame.examples.aliens;安装ok即会出现如下图所示动画二、使用pygame创建图像窗口1.游戏的初始化和退出;要使用pygame提供的所有功能之前,必须先调用init方法;在游戏结束,需要调用quit方法pygame.init()→游戏代码→pygame.quit()2.在游戏中,所有可见的元素都是以矩形区域来描述位置的;要描述一个矩形区域有4个要素(x,y(widt

2022-05-29 16:50:14 2116

原创 django.template.exceptions.TemplateDoesNotExist报错解决方法

报错信息如下:在setting.py里面改下TMPLATES中的DIRS配置改成即可成功'DIRS': ["%s/%s" % (BASE_DIR, 'templates'), ],

2022-04-20 11:49:13 3228 1

原创 django.template.exceptions.TemplateSyntaxError: ‘staticfiles‘ is not a registered tag library报错

报错如下:解决方法:在settings.py加上'libraries': { # Adding this section should work around the issue. 'staticfiles': 'django.templatetags.static'}加上之后如下,即可成功访问了~TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplate

2022-04-17 22:38:42 5516 1

原创 连接MySQL数据库出现错误:2059 - authentication plugin ‘caching_sha2_password‘的解决方法

原因分析:错误原因:MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。1.首先我们需要打开MySQL 命令行客户端,如图所示,点击【MySQL 8.0 command line client】2.输入自己安装MySQL时设置的密码,登录客户端,如图所示,表示登录成功3.先查看一下加密的方式,命令:show variables like ‘default_authentication_plugin’;

2022-04-15 10:43:00 23119 9

原创 项目实战-后台员工信息管理(增删改查登录与退出)

项目搭建:1.创建项目:django-admin startproject myobject2.创建应用:python manage.py startapp myadmin/web/mobile3.创建模板目录:templates(模板中对应各应用目录myadmin/web/mobile)4.创建静态资源目录:static(目录中对应各应用目录myadmin/web/mobile,并放置图片文件uploads)5.在每一个应用目录下创建视图包views并删除原有的views.py (init.py

2022-03-06 17:58:51 3088

原创 Django报错Exception Value: (1146, “Table ‘osdb.myadmin_user‘ doesn‘t exist“)解决方法

进入当前项目执行以下2个迁移表命令后即可正常访问:python manage.py makemigrationspython manage.py migrate

2022-02-20 15:15:27 698

原创 Did you forget to register or load this tag 报错解决方法

报错信息如下:解决方法:在当前报错的文件,head里面加上 {% load static %}即可运行成功,如下

2022-02-19 21:49:10 5147

原创 Django运行报错:Error loading MySQLdb module解决方法

报错信息如下:解决方法:在项目下的__init__.py文件里添加以下代码(主要是项目项目项目!!!不是应用)import pymysqlpymysql.install_as_MySQLdb()添加成功后即可运行成功,祝你好运~

2022-02-19 17:40:06 1479

原创 02-项目实战之后台员工信息管理

创建员工信息数据表;user (已创建过了)定义模型Model类;进入myobject/myadmin/models.py;由于user表中id是自增的,所以不需要再定义from django.db import modelsfrom datetime import datetime#员工账号信息模型class User(models.Model): username = models.CharField(max_length=50) #员工账号 nickname = .

2021-12-21 23:13:32 564

原创 03-基于Django框架的项目搭建

1.项目框架如下: 1. 创建项目:django-admin startproject myweb 2. 进入项目,创建应用;cd myweb 3. 创建应用:python manage.py startapp myadmin python manage.py startapp mobile python manage.py startapp web 4. 在项目下,新建一个文件夹,存放模板目录 template 5. 在项目下,新建一个文件夹,存放静态资源 static 6. 在t

2021-12-07 23:00:41 743

原创 01项目需求分析 (点餐系统)

1.项目开发流程2. 点餐项目需求分析 项目开发流程: 1. 软件开发过程的划分 2. 软件开发流程 3. 软件开发过程遵循的标准文档 4. 项目需求分析 5. 项目系统设计 6. 编码测试 7. 试运行,实施和验收 8. 服务与维护 点餐项目需求分析 1. 确立项目 2.项目功能介绍 3.绘制功能模块流程图 4.具体功能描述 5.项目运行环境要求 6.项目具体完成时间 7.验收标准 ...

2021-12-06 22:36:20 1302

原创 python-socket使用套接字(UDP)

"""1.创建套接字2.使用套接字收/发数据3.关闭套接字使用socket模块的函数socket完成import socketsocket.socket(AddressFamily, Type)AddressFamily:可以选择AF_INET(用户Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INETType:套接字类型,可以是SOCK_STREAM(流式套接字,主要用于TCP协议)或者SOCK_DGRAM(数据报套接字,主要用户UDP协

2021-11-08 22:48:28 1851

原创 安全测试涉及的测试对象

安全测试的关键点: 数据流,输入输出测试对象:服务器、数据库、第三方服务及接口、web应用程序1.应用程序的部署环境(服务器)操作系统用户名以及密码的强度 操作系统用户用户组以及权限设置系统漏洞以及补丁应用部署环境目录以及文件安全防火墙以及网络端口设置2.数据库数据库服务器版本以及漏洞用户名和密码设置数据库的用户权限设置以及授权设置数据库服务器端口以及网络连接设置3.web应用安全测试sql注入表单漏洞cookie欺骗session测试日志文件测试跨站攻击

2021-10-16 22:42:37 1771

原创 TCP/IP协议(UDP)

TCP/IP协议:是一个协议簇,包含很多协议,UDP也包括在其中。一般命名都是TCP/IP,是因为是协议中最重要的俩个协议TCP/IP协议集包括:应用层、传输层、网络层、网络链路层应用层包括:1.超文本传输协议(HTTP)2.文件传输协议(TFTP)3.远程登录(Telnet)4.网络管理(SNMP简单网络管理协议)5.域名系统(DNS)网络层包括:1.IP(Internet协议)2.ICMP(Internet控制信息协议)3.ARP(地址解析协议)4.RARP(反向地址解析协

2021-10-10 21:48:40 1675

原创 软件测试-面试题分享

1.对以下列表数据进行去重L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3]L1 = list(set(L))print(L1) #[1, 2, 3, 5, 11]2.下列表数据,如何使数据变成123456?L = [1, 2, 3, 4, 5, 6]s = ''for i in L: s = s + str(i)print(s) #123456print(type(s)) #<class 'str'>3.等长的俩个列表要求合并到一个字

2021-10-06 19:21:16 712

原创 python-直连数据库(pymysql)

基本流程:1.导入pymysql包2.创建连接3.创建数据载体(游标对象)4.核心数据传输(sql语句)5.释放资源import pymysql#创建连接conn = pymysql.Connect(host="127.0.0.1", port=3306, database="books", user="root", password="123456", charset="utf8")#创建游标对象lv = conn.cursor()#编写sql语句sql = "select

2021-10-06 18:43:59 281

原创 python-Unittest中5大核心要素(TestCase、TestSuite、TestRunner、TestLoader 、 Fixture)

unittest核心要素:TestCase 测试用例TestSuite 测试套件TestRunner 测试运行器TestLoader 测试用例加载器FixtureTestCase 测试用例1.定义测试类:一定要继承unittest.TestCase2.定义测试方法:方法名必须以小写test开头3.运行测试用例:在这里插入代码片TestSuite 测试套件...

2021-10-06 09:55:25 760

原创 python-selenium之PO模式

1.创建工具类utils.py文件# 工具类import timefrom selenium import webdriver# 定义浏览器驱动获取和关闭的类# 减少多个用例都调用的实例化浏览器驱动以及最大化和隐式等待的方法,减少部分代码冗余class DriverUtil: # 私有变量,用来存储浏览器驱动对象 __driver = None is_open = True # 获取浏览器驱动 # 1.用类级别定义方法的目的是为了方便测试用例的代码

2021-10-06 09:30:37 1331

原创 python-selenium基础实现

1.先封装Base层(base_page.py);将相同的属性和行为进行封装;比如:每一个页面都需要经过元素定位、点击或者输入2.再封装Page层(login_page.py):这是一个页面对象层,也就是把每一个页面当做一个对象,在每个对象中包含属性和行为。通过对Base层的继承,使用Base层定位好的属性和行为3.最后封装TestCase层(testcase_login.py):通过unittest框架,进行用例的设计;如果登录,首先要先加载浏览器,然后方法窗口,引用login_page中方法和属性.

2021-10-06 09:02:10 171

原创 python-selenium常用浏览器操作方法

1.窗口最大化:driver.maximize_window() 要放置在浏览器驱动之后2.设置浏览器位置:driver.set_window_position(x,y) x,y表示横坐标和纵坐标,注意在自动化里面原点在屏幕的左上角3.设置浏览器大小:driver.set_window_size(w,h);w表示宽度,h表示高度,以像素为单位4.浏览器前进操作:driver.forward()5.浏览器后退操作:driver.back()6.浏览器刷新:driver.refresh(

2021-09-23 22:56:17 1241

原创 python-selenium 的元素定位方法

find_element_by_id:元素必须包含id属性find_element_by_name:元素必须包含name属性find_element_by_class_name:元素必须包含class属性find_element_by_tag_name:标签名,不建议使用,会存在多个,导致取值有问题find_element_by_link_text:全部的文本信息,专门用来定位超链接find_element_by_partial_link_text:表示超链接元素的局部文本信息find_ele.

2021-09-23 22:44:08 201

原创 Python-UI自动化基础问题复习(selenium)

1.元素定位的类型id;name;tagName;className;cssSelector;linkText;partialLinText;xpath2.登录按钮除了使用click还可以使用什么?submit;前提是input元素的type为submit3.怎么验证复选按钮是否被选中?使用isSelected方法,返回True就是被选中,反之则没有4.如何处理aler弹窗?首先要先跳转到alert上,然后点击确定或者取消alert = driver.switchTo().aleat() #

2021-09-23 22:30:06 183

原创 Python-字符串、列表、元组、字典基础知识复习

【字符串】下标:从0开始;标志每个数据的位置举例:str1 ="大家好呀"print(str1[0]) #值为:大print(str1[-1]) #值为:呀;-1表示最后一个print(str1[len(str1)-1]) #值为:呀;表示获取str1的长度,取最后一个切片:切换字符串,截图字符串举例:str1 = "baidu.com"获取位置2-5的字符num_str1 = str1[2:6]print(num_str1)str1 = "itcast.com"#0123

2021-09-23 21:18:57 134

原创 Linux常用命令

1.cd:切换目录2.ll:列出目录和文件3.pwd:查看当前位置4.tail -f :查看日志(只看最后几行)5.cat:查看日志(由第一行开始显示文件内容)6.df:查看磁盘使用量7.chmod:修改用户的权限8.sudo su:切换到root权限9.echo > xxx:清理文件10.sz xxx:下载文件12.top:CPU查看13.iostat:磁盘IO14.mkdir xxx:创建新目录【mkdir -m 711 test:表示创建test目录,并赋权】chmod

2021-09-23 21:16:08 87

原创 Git和SVN复习

【Git】1.初始化为本地仓库;命令:git init;初始化后会有个.git文件2.查看状态;命令:git status3.提交文件;命令:git add 文件名4.从暂存区保存到本地仓库:git commit -m “描述信息”5.查看是否提交:git status6.先拉下代码;git pull xxx master7.推送代码;git push xxx master【SVN】1.SVN Checkout:从svn服务器将项目内容获取到本地系统文件夹中2.SVN Updata:在每

2021-09-23 21:09:55 85

原创 数据库-复习

mysql复习:内连接:inner join ;获取俩个表中字段匹配关系的记录左连接:left join;获取左表所有记录,即使右表没有对应匹配的记录右连接:right join;与左连接相反redis(非关系型数据库):value可以是字符串、哈希、列表、集合、有序集合新增key:set xxx查询:get xxx优点:性能极高,读写速度快;丰富的数据类型;原子性(所有操作要么同时成功要么同时失败);丰富的特性TiDB(关系型数据库):优点和适合的场景:1.支持mysql协议(开发接

2021-09-23 21:09:24 92

原创 python基础-for循环

for循环和while循环之间的区别:while:更偏向于遍历次数for:更偏向于数据for循环执行多少次,是由数据的长度决定。以下举例说明for循环可以使用range();是专门提供给for循环使用的range(值1,值2,值3):包含最小值,不包含最大值,默认步长为1值1:表示最小值值2:表示最大值值3:表示步长例1:name = "yiqing"for i in name: print(i) #循环了6次例2:打印1~100 之间的数据for i in ra

2021-09-22 23:13:22 172

原创 python基础-while

while:分为3部分;变量、条件、自增执行的语句都放在自增的前面,受while控制,有个tab键;变量:初始值条件:具体对应的需求自增作用:跳出循环的条件,如果没有自增就会是死循环,正常情况只能=1操作实例:例1:打印1~100之间的数字n = 1while n <= 100: print(n) n += 1 例2:打印1~100之间的偶数n =1while n <= 100: if n % 2 == 0: print(n)

2021-09-22 22:56:57 189

原创 Ant安装与下载

1.下载网址:http://ant.apache.org/bindownload.cgi2.将下载后的zip解压,存到指定目录下3.配置环境变量;在系统变量→path中添加当存放的路径到(一直到bin)4.验证是否安装成功,通过cmd命令窗口,执行命令:ant -v步骤1和2步骤3步骤4...

2021-09-17 22:54:52 2168

原创 ZooKeeper简单介绍

ZooKeeper主要可以用来做:统一配置管理、统一命名服务、分布式锁、集群管理ZooKeeper节点也叫做:Znode;可以分为俩种类型临时:当客户端和服务端断开连接后,所创建的节点会自动删除持久:当客户端和服务端断开连接后,所创建的节点不会删除zk和redis一样,也是C/S结构,分为客户端和服务端监听器,常见的监听场景:1.监听Znode节点的数据变化2.监听子节点的增减变化统一配置管理:举个例子:有A、B、C三个系统三个配置,配置都非常相似;如果改其他一份配置项信息,很可能其他两

2021-09-16 22:10:17 303

原创 Dubbo接口和Http接口的区别

Dubbo接口和http接口区别:1.协议层区别:HTTP/HTTPS:使用的是应用层协议,定义了用于在网络中进行通信和传输数据的接口Dubbo接口:使用的是TCP/IP传输层协议,管理着网络中的端到端的数据传输,因此要比HTTP协议快2.socket层区别dubbo模式使用socket长链接;也就是首次访问建立连接以后,后续网络请求使用相同的网络通道http1.1协议模式使用短链接;每次请求都需求进行三次握手http2.0协议才开始将默认socket连接改成了长连接...

2021-09-16 21:58:27 3338

原创 Jmeter-分析增删改查操作

tearDown线程组封装删除实现;setUp实现新增;一般线程组实现修改和查询执行顺序为:增、改、查、删可以通过函数设计测试数据,使用断言判断结果跨线程组关联【正则表达式提取器、__setProperty、__property】...

2021-09-15 22:54:44 490

原创 Jmeter-各个元件之间的执行顺序

配置元件(config elements):http请求默认值、http信息头管理器……(初始化操作)前置处理器(Pre-processors):用户参数……(为取样器执行准备数据)定时器(Timers):同步定时器、常量吞吐定时器……(设置取样器的执行规则)取样器(Sampler):http请求、JDBC Request……(核心:负责向服务器发送请求)后置处理程序(Post-processors):Xpath提取器、正则表达式提取器……(从响应结果提取数据)断言(Assertions):响应.

2021-09-15 22:50:53 178

原创 Jmeter-性能基础之定时器

举个栗子1:同一时刻,100个同学去访问某系统,查询他们的信息,统计高并发情况下平均响应时间以及错误率操作流程:1.创建计划、线程组、取样器、线程数设置成100表示模拟100个用户、聚合报告2.问题:怎么控制同一时间?3.解决:添加组件:同步定时器举个栗子2:一个用户以20QPS(20次/秒)的频率访问某系统,持续时间15s,统计服务器的平均响应时间操作流程:1.创建计划、线程组、取样器、聚合报告【循环次数=访问频率*持续时间】2.问题:怎么控制取样器的访问频率?3.解决:添加组件:常

2021-09-15 22:46:33 74

空空如也

空空如也

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

TA关注的人

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