自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql_窗口函数之排序函数rank()、dense_rank()、row_number()

文章目录基础语法理解窗口函数特性实例重要:Mysql8.0+版本支持窗口函数。基础语法窗口函数中,排序函数分三种:rank() over(partition by 分区字段 order by 排序字段 desc/asc)dense_rank()over(partition by 分区字段 order by 排序字段 desc/asc)row_number()over(partition by 分区字段 order by 排序字段 desc/asc)rank()函数,当指定字段数值相同,

2020-09-01 17:02:35 4945 2

原创 Django_使用django自带的user做外键

一、使用django自带的user做外键,可以直接在model中使用。只需导入settings模块使用方法:在app应用(此处是Product应用)中的models.py文件,导入settings模块# Product / models.pyfrom django.db import modelsfrom django.contrib.auth import settingsclass Product(models.Model): productName = models.CharF

2020-07-21 17:19:37 10126 1

原创 ftp:500 Illegal PORT command报错 553 Could not create file循环报错

背景:搞pprof,想把在容器里的pprof.xxx.cpu.002.pb.gz文件拷到本地再分析,中间借助了ftp服务。第一步:在容器里连接了 ftp服务器。连接方式:ftp 10.189.xxx.xxx,按提示输入用户名密码即可/第二步:把本地的(我这里就是容器)的pprof.xxx.cpu.002.pb.gz文件put/send到ftp里面,我的pprof.xxx.cpu.002.pb.gz文件是在/root/pprof/路径下的。问题就出现在这一步。我执行的命令:put /root/ppr

2022-05-27 19:29:17 3373

原创 动态规划算法

动态规划算法适用于有重叠子问题和最优子结构性质的问题。解完几道题目后,再回头读这句话会发现这总结真是精辟。实际操作过程中,怎么拆解也非常重要。多练,出感觉。另外,此类题要敢于设置变量。比如题目一的minprice和maxprofit以下两道题目均出自leetcode。题目一:买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所

2021-11-14 00:15:23 321

原创 linux_找到端口为8200的进程并杀掉

linux如何查看端口被哪个进程占用的方法:1、lsof -i: 82002、netstat -tunlp |grep 8200杀进程kill 2280

2021-10-21 23:36:23 373

原创 spark集群执行python demo

spark集群通常用于处理大数据,通常涉及到任务执行的先后顺序,所以前面有DAGDAG文件# DAG示例# -*- coding: utf-8 -*-from airflow import utilsfrom airflow import DAGfrom airflow.operators.bash_operator import BashOperatorfrom datetime import timedeltafrom airflow.operators.sensors import E

2021-10-19 20:25:41 472

原创 sparksql_LPAD/RPAD实现补充字符到定长

需求:tableA表中有一个stat_hour字段,记录数据产生的hour。但由于tableA是爬虫回来落表,所以stat_hour字段有时存储为7,有时候是07,为了方便后面的数据处理,需要将stat_hour长度小于2时,补零,全部提取为‘07’这种形式用到的函数:LPAD(str, len, padstr),RPAD(str, len, padstr)lpad函数是Oracle数据库函数,lpad函数从左边对字符串使用指定的字符进行填充。l是left的简写,pad是填充的意思。Rpad同理。实例

2021-10-15 14:17:33 1470

原创 搭建一个测试环境

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入没想到该来的还是来了,刚搞明白了投放平台的服务架构,就要自己搭建一个测试环境 。这个事情分两个部分吧,一个是我理解的要搭建

2021-06-11 00:57:35 94

原创 Appium针对IOS的几种元素定位方法

文章目录1. 元素属性介绍2. IOS的几种元素定位方法3. 元素定位方法详解3.1 IOS_PREDICATE3.2 ACCESSIBILITY_ID3.3 class_name3.4 xpath3.5 ios_uiautomation1. 元素属性介绍下图是通过weditor定位的微博的“我的钱包”,各属性如下图:className:元素类型,如:XCUIElementTypeButtonisEnabled:元素是否可点击,一般值为1或者0isVisible:元素是否可见,一般值为1或者0

2021-04-03 18:52:03 1359

原创 【Mac】Appium自动化测试(下)_苹果真机连接appium

文章目录上一篇博客已经完成了全部安装。这篇讲苹果真机连接appium实现自动化环境的调试。调试步骤:iphone通过数据线连接电脑启动appium server:命令行输入appium即可启动appium server,确保你只安装了一个appium server。上篇文章的4.1和4.2是两种方式,如果你两种都安装了,那证明你安装了两个appium server,选择一个启动即可。找到appium的安装路径,进入到appium安装路径下的webdriveragent目录,如果是命令行安装的ap

2020-12-22 00:55:32 1349 2

原创 【Mac】Appium自动化测试(上)_ios环境搭建

文章目录基础环境搭建0. 安装Homebrew1. 安装pyhton2. 安装node3. 安装cnmp4. 安装appium5. 安装appium-doctor6. 安装Xcode7. 安装Carthage8. 安装deploy连接IOS真机开始之前忍不住吐槽。appium环境搭建这一步就会让很多人望而却步。要不是工作需要,我可能就是死于环境搭建的那一拨人。基础环境搭建0. 安装HomebrewHomebrew 简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软

2020-12-15 01:30:54 598 1

原创 Charles抓包(一):手机连接Charles

文章目录一 Charles下载安装二 iphone 配置代理1.查询charles的本地ip地址2.手机网络配置代理三 iphone下载、安装、信任ssl证书1 下载证书2 安装证书3 信任证书一 Charles下载安装简单下载安装。不赘述二 iphone 配置代理保证iphone连的网络和电脑上charles的网络是一样的,查看网络的ip.1.查询charles的本地ip地址电脑上charles连接的网络,可以通过charles的顶部菜单help->Local Ip Address进行查

2020-12-12 17:23:20 3444

原创 Mac OS安装iTerm2和Oh My Zsh

文章目录一、iTerm21.iTerm2简介2.iTerm2下载安装3. iTerm2使用3.1 设置为默认终端3.2 配置iTerm2主题3.3 修改配置文件3.4 配置 Meslo 字体二、oh my zsh1.oh my zsh简介2.安装2.1 准备工作2.2 安装oh my zsh2.3 安装历史命令提示插件2.4 安装高亮插件2.5 修改配置文件并生效三、注意先放一张效果图一、iTerm21.iTerm2简介Mac OS自带的终端(zsh/bash),用起来有些不太方便,界面也不够友好

2020-12-12 03:23:56 777

原创 下载oh my zash时,报错curl: (7) failed to connect to raw.github.com port 443: connection refused

下载完item2后,安装oh my zsh的时候,用官方给的命令报错curl: (7) failed to connect to raw.github.com port 443: connection refused解决方案:修改dns为8.8.8.8

2020-12-12 01:37:36 205

原创 在TCP/IP协议集中,应用层的各种服务是在传输层所提供服务的基础上实现的,哪些应用层协议需要使用传输层的TCP协议建立连接?

基于TCP的应用层协议有:POP3、SMTP(简单邮件传输协议)、TELNET(远程登陆协议)、HTTP(超文本传输协议)、HTTPS(超文本传输安全协议)、FTP(文件传输协议)基于UDP的应用层协议:TFTP(简单文件传输协议)、RIP(路由信息协议)、DHCP(动态主机设置协议)、BOOTP(引导程序协议,DHCP的前身)、IGMP(Internet组管理协议)基于TCP和UDP协议:DNS(域名系统)、ECHO(回绕协议)...

2020-11-17 16:34:32 2589

原创 Mysql数据库事务的四大特性_ACID

文章目录事务四大特性(ACID)一、Atomicity原子性二、Consistency 一致性三、Isolation 隔离性四、Durability 持久性事务事务就是一个程序执行单元。要么全部执行,要么全部不执行。四大特性(ACID)一、Atomicity原子性原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。二、Consistency 一致性一致性是指事务之前之前和事务执行之后保持一致性状态。例

2020-11-16 22:58:50 163

原创 python高级特性_List comprehensions,Generator

List comprehensions(列表解析)语法:[expr for iter_var in iterable] 或 [expr for iter_var in iterable if cond_expr][expr for iter_var in iterable]:for iter_var in iterable的作用是依次取 iterable赋值给iter_var,而expr for iter_var in iterable的作用就是依次取值给iter_var,expr做运算后,继续循环,e

2020-11-15 15:55:33 98 1

原创 路由器和交换机的区别和联系

OSI七层协议:层数设备数据格式一层:物理层设备:网卡,光纤,集线器数据格式:bit 位二层:数据链路层设备:交换机数据格式:frame 数据帧三层:网络层(IP)设备:路由器 路由转发和地址解析数据格式:packets 数据包四层:传输层(TCP/UDP)设备:网关数据格式:TCP:segments 报文段 UDP:datagrams 数据报五层:会话层六层:表示层七层:应用层无数据格式:报文(message)

2020-11-14 23:39:40 206

原创 白盒测试

程序分析分为静态分析和动态分析两种,静态分析和动态分析的区别在于是否运行程序。静态分析工具QAC动态分析单元测试(基于C语言)桩函数:当我们测试一个函数时,被测函数中可能会调用其它函数,而在此时我们不需要关注被调用函数的正确性,我们将它打桩,让它返回我们想要的值作为后续使用,这个函数就是桩函数。驱动函数:mock:mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。集成测试对已经进行过单元测试的函数按照概要设计进行组装,分析接口之间的交互是否与预期

2020-11-13 16:36:19 194

原创 【JAVA】每日两道算法题

LeetCode101 对称二叉树题目:给定一个二叉树,检查它是否是镜像对称的。// 二叉树 [1,2,2,3,4,4,3] 是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 / \ / \ / \ / \5 6 7 8 8 7 6 5标签:递归、迭代思路一:递归根节点比较特殊,单独拿出来。如果根节点不为null,比较左子树和右子

2020-10-14 13:51:33 83

原创 【JAVA】每日两道编程题0930_LeetCode24 反转链表

LeetCode24 反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL标签:栈、递归、双指针思路一:反转链表的常规解法:用栈存储链表的值,然后取出。但这种解法的时间和空间复杂度均达不到标准。代码实现:import java.util.List;import java.util.Stack;//链表

2020-09-30 17:02:34 149

原创 【JAVA】每日两道算法题0929

LeetCode83 删除排序链表中的重复元素题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。输入: 1->1->2->3->3输出: 1->2->3标签:链表、 单指针思路:终止条件:代码实现LeetCode...

2020-09-29 18:40:12 73

原创 StringBuffer和StringBuilder线程是否安全

以下内容转自https://blog.csdn.net/a372663325/article/details/100151591。侵删今天小G有一个面试题,面试题内容为:StringBuffer和StringBuilder是否线程安全?所以在此写一个博客说明下,二话不说,直接上代码,程序员必备(小G:答案是stringBuffer是线程安全)StringBuffer buffer= new StringBuffer(); buffer.append("d");然后我们进入appen里面看看@

2020-09-27 16:19:33 1821

原创 单步调试step into、step over、step out

step into : 单步执行,遇到子函数就进入并且继续单步执行。step over: 在单步执行时,在函数内遇到子函数,不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是将子函数整体作为一步。step out: 如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。...

2020-09-27 16:05:04 1420

原创 【JAVA】每日两道算法题0927

LeetCode697 数组的度题目:给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。输入: [1,2,2,3,1,4,2]输出: 6标签:数组思路:根据题意,对于数组中的每一个值,需要存储:第一次出现的位置(即下标),最后一次出现的位置(即下标),出现的次数。所以选择哈希表来存储,key为数组中的每一个值,value存储下标或次数。遍历数组第一次出现的位置:

2020-09-27 15:49:11 154

原创 【JAVA】每日两道算法题0925_双指针+递归

算法LeetCode38 外观数列LeetCode38 外观数列题目:给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221标签:字符串、递归、双指针思路:1.第n项是对第n-1项的描述。故先获取第n-1项。(递归法)2.描述方法:使用

2020-09-25 15:04:54 186 1

原创 【JAVA】面试须知的五种排序算法0917_思路及实现(所有代码亲测可用)

1.冒泡排序图片来源:https://www.cnblogs.com/guoyaohua/p/8600214.html冒泡排序:1.循环n次,每次循环获取最大值,放在最后。2.一次比较两个元素,如果它们的顺序错误就把它们交换过来。3.循环class Solution { public int[] bubbleSort(int[] arr) { int n = arr.length; if (n == 0) {return arr;} /*循环n次,依次将最大、第二、第三放在数组的

2020-09-17 18:45:39 246

原创 【JAVA】每日两道算法题0916_链表、递归

文章目录LeetCode21LeetCode334递归递归三要素:斐波那契数列99乘法表LeetCode21题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。标签:链表、递归思路:1.新的链表不需要重新定义,因为链表的插入是非常方便的。2.如果l1或者l2为空链表,不需要合并,直接返回另一个链表。代码实现://递归实现class Solution { public ListNode mergeTwoLists(ListNode l

2020-09-16 15:53:40 124

原创 【JAVA】每日两道算法题0915_栈、字符串处理

题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。来源:力扣(LeetCode)有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。3.空字符串可被认为是有效字符串。标签:栈思路:1.当字符串长度为奇数时,返回false;2.前面一直是左括号时,需要一个数据结构暂存这些等着被匹配的左括号。当右括号出现时,这些暂存的左括号以“后进先出”的方式被匹配。所以用“栈”这种数据结构去暂存等着被匹配的左括号。3

2020-09-16 14:05:20 147

原创 【JAVA】每天两道算法题0910_双指针,滑动窗口。

这里写自定义目录标题题目来源:LeetCode给定一个字符串,请找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pw

2020-09-10 17:50:01 1476

原创 【JAVA】每日两道算法题0909_Hash、链表

什么时候考虑用哈希法:当我们需要快速查找一个元素是否出现集合里时。牺牲空间换取时间的做法, 需要额外的数组、set、map来存放数据。哈希表哈希函数哈希碰撞拉链法线性探测法常见的三种哈希结构当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。数组set (集合)map(映射)二叉搜索数(有序排列树)和红黑树链表...

2020-09-09 20:33:34 690

原创 Linux常用命令(三)_查看文件内容

文章目录1.cat_从第一行输出,不分页2.tac_从最后一行开始输出,不分页3.more/less_可控制从第几行开始输出,可自定义每页显示几行4.head/tail_可以输出任意行5.sed_p输出任意行1.cat_从第一行输出,不分页正向查看一个文件,即从文件的第一行开始输出: cat text1将text1和text2合并后放入text文件中: cat text1 text2 > text2.tac_从最后一行开始输出,不分页从文件最后一行开始反向查看内容: tac

2020-09-07 16:57:46 3390

原创 Linux常用命令(二)_搜索类命令find、grep

1.grep命令作用:指定文件执行关键词搜索。grep 关键词 [文件/目录] [option]实例1:grep “test_text” file_1 file_2 —color=auto在多个文件中查找包含“test_text”的文本行,标记并返回。示例2:grep -o -E “[a-c]+” 或 egrep “[a-c]+”-E:正则匹配 (关于正则匹配,之后可能要再写一篇简单博客)-o: 只输出 文件中匹配到的部分。这里用到了管道符号(|),详解下一个命令。示例3

2020-09-07 14:03:43 3146

原创 Mysql_某一列(值可重复)第N大的数

数据表结构:employee表idnameage1王XX362李XX463刘XX404章XX365柯XX316田XX407郭XX38实现:取年龄值第n大的数,如果不存在,返回结果nulln = n - 1select IFNULL((select distinct age from employee order by age desc limit n,1),NULL) as 2nd_age结果:当n =

2020-08-31 19:57:50 2767

原创 Mysql_常用函数round,locate,datediff,limit

1.ROUND函数用法:ROUND(x,d)含义:x指要处理的数,d是指四舍五入保留几位小数查询:SELECT ROUND(5478.3428, 3)结果:5478.343d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;查询:select ROUND(8720.3983,-2);结果:87002.LOCATE函数用法:LOCATE(substr,str)含义:返回子串substr在字符串str中第一次出现的位置。如果子串substr在str中不存在,返回值为0。

2020-08-31 19:00:56 3004

原创 Python re模块正则表达式

本文建议有一定正则基础的看正则表达式可以包含普通或者特殊字符。绝大部分普通字符,比如 ‘A’, ‘a’, 或者 ‘0’,都是最简单的正则表达式。它们就匹配自身。有些字符,比如 ‘|’ 或者 ‘(’,属于特殊字符。 特殊字符既可以表示它的普通含义, 也可以影响它旁边的正则表达式的解释。重复修饰符 (* , +, ?, {m,n}, 等) 不能直接嵌套。这样避免了非贪婪后缀 ? 修饰符,和其他实现中的修饰符产生的多义性。要应用一个内层重复嵌套,可以使用括号。 比如,表达式 (?:a{6})* 匹配6个 ‘

2020-08-28 18:38:08 1246 1

原创 Mysql_加解密AES_ENCRYPT()、AES_DECRYPT()

实现email字段在数据库中是密文。该字段存储到数据前需要使用AES_ENTRYPT()函数将明文加密。之后,从数据库中读取该字段时,要使用AES_DECRYPT()函数对密文进行解密。使用:AES_ENCRYPT(‘要加密的内容’,‘钥匙’)函数可以对字段值做加密处理,AES_DECRYPT(表的字段名称,‘钥匙’)函数解密处理如:将个人邮箱‘[email protected]’ 加密,密钥为‘key’.email = AES_ENCRYPT(‘[email protected]’, ‘key’)

2020-08-21 14:24:43 2439

原创 Django_记一次狗血的“找不到模板文件”

project目录截图:报错截图:不敢相信,我花了一个多小时纠结为什么:在ApiTest这个app下的template模板能找到,而Bug这个app下的template模板找不到。我很确认settings.py中文件,我已经注册了这个app。我甚至在Bug目录下建完template文件夹后,标记该文件夹为templates类型。不说了。说多了都是泪。结果就是:我发现我建的文件夹名叫“template”,而不是“templates”.狗头!!!!!!!!!!...

2020-08-03 11:08:47 2989 1

原创 自动化测试平台_前后端交互之Ajax

前后端交互之AjaxThe Jquery library has a full suite of Ajax capabilities.The functions and methods there in allow us to load data from the server without a browser page fresh.传统方式:用户触发一个HTTP请求到 Web服务器,服务器接收并处理传来的数据,然后回送一个新的页面分析1:这种方式浪费了很多资源和带宽,很多情况下,返回的页面大部分

2020-07-31 16:51:50 12068

原创 Python_循环zip返回的对象,第一次有值,第二次没有值。

在控制台输入以下代码:>>> list1 = ['Caroline', 'Caicai']>>> list2 = ['Smith', 'Shi']>>> zip_obj = zip(list1, list2)>>> for i,j in zip_obj:... print('My name is '+ i + " " + j)>>> print(dict(zip_obj))结果输出:奇怪的事

2020-07-31 12:11:16 12086

空空如也

空空如也

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

TA关注的人

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