python
python
我是一言
记笔记,笔记,记…
展开
-
django+vue项目搭建,前后端通信打通,
使用python+django+vue+element-ui打造自动化平台,首先打通开发环境django后端服务和vue的跨域联调问题和生产通信问题原创 2023-02-17 11:23:41 · 3540 阅读 · 1 评论 -
启动报错解决__init__() got an unexpected keyword argument ‘maxBytes‘ /Unable to configure handler ‘file‘
django项目部署到linux服务器后,启动报错TypeError: __init__() got an unexpected keyword argument 'maxBytes' ValueError: Unable to configure handler 'file'原创 2023-01-30 18:36:01 · 1331 阅读 · 0 评论 -
装饰器,可以改装成重跑装饰器函数
import randomdef rerun(c): #c是重跑次数,这里接收装饰器函数的入参5 def deco(func): #闭包,入参func用来接收test_001函数对象 def inner(*arg, **kwargs): #入参接收的是test_001的参数cid for i in range(c): try: print(f"----开始执行第{i}次----") func(*arg, **kwargs) # 被装饰函数执行 break.原创 2022-04-23 22:13:32 · 413 阅读 · 0 评论 -
构造类实现mysql增改查以及常用的方法
几个知识点cur.execute()返回值是影响条数fetchone()是取结果集中的第一条,所以多条里取一条记得让目标数据在第一条才能用这个方法fetchmany() 读取多条fetchall()获取全部数据cursor.rownumber 获取当前游标位置cursor.scroll(2,mode='relative')将游标前移2个位置conn.rollback()回滚事务 ...原创 2022-01-16 00:03:00 · 575 阅读 · 0 评论 -
windows 启进程,杀进程解决方案,亲身踩坑 靠谱好用
移动端APP自动化平台搭建,我们在执行完case后,需要在后置处理器函数做清理,比如清理chromedriver和appium进程,完整代码放在文章最后。下面开始:清理chromedriverlinux下杀appium进程都比较简单主要是windows下杀appium进程,可能会有比较多同学踩坑,所以在这分享下windows杀进程的方案给用windows写代码的同学,保证靠谱,不靠谱可以评论找我!下面的代码是通过端口号找到进程,plist = subprocess.getstatusoutpu原创 2022-04-11 12:56:57 · 965 阅读 · 0 评论 -
subprocess模块最全笔记
文章目录subprocesssubprocess.Popen 类Popen 对象的属性Popen 对象的方法subprocess模块的其他方法subprocess模块的其他属性subprocess模块定义的异常os.system()os.popen()subprocess.run()subprocess.getstatusoutput()subprocess.getoutput()terminate()pidsubprocess使用 Popen 可以在Python进程中创建子进程,如果只对子进程的执行退原创 2022-04-08 18:02:05 · 2591 阅读 · 0 评论 -
appium ConnectionRefusedError,urllib3.exceptions.NewConnectionError,urllib3.exceptions.MaxRetryError
appium ConnectionRefusedError,urllib3.exceptions.NewConnectionError,urllib3.exceptions.MaxRetryError踩坑报错关键信息ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at原创 2022-04-08 11:27:38 · 8609 阅读 · 0 评论 -
一维数组切片装入二维数组
l = ['支付宝收款0.01', '激励金+0.01', '2022-01-13 14:32:31', '微信收款0.01', '激励金+0.02', '2022-01-13 14:30:40', '支付宝收款0.01','激励金+0.03', '2022-01-07 15:03:51', '微信退款-0.01', '激励金-0.04', '2022-01-06 22:54:31', '支付宝退款-0.01', '激励金-0.05','2022-01-06 22:54:09', '微信原创 2022-04-05 19:10:14 · 132 阅读 · 0 评论 -
if __name__ == ‘__main__‘原理,一文讲清
同目录下有两个文件t4.py,t5.pyt4.py的代码class T4: def f1(self): print('t4 TEST f1')t = T4()t.f1()t5.py的代码from output.case.t4 import T4class T5: def f1(self): print('t5 TEST f1') def f2(self): print('t5 TEST f2')t = T5()原创 2022-04-05 19:09:29 · 2118 阅读 · 0 评论 -
你真的会for循环吗?
for循环和else的千变不离其中,一篇搞清楚for和elsel = [1,2,3,4,5]for i in l: if i == 3: print(i) print(i)else: print(6)1233456# break只要被执行,else就不会执行,通常用来找一个i==3,如果整个遍历都找不到,那就走else逻辑for i in l: if i == 3: break print(i)else: print(6)12for i in l原创 2022-04-05 19:08:17 · 222 阅读 · 0 评论 -
并发编程 六 - 支付接口并发
支付接口并发需求:对支付接口做并发,验证账户金额的扣款(-)冻结(+),然后把执行结果写到一个日志文件# @Time : '2021-6-19 07:58'# @Author : 'pc.kang'import time,json,requestsfrom threading import Thread,Lockpayid_list = {11111,22222,3...原创 2021-06-19 08:56:00 · 161 阅读 · 0 评论 -
并发编程四(5) 线程同步 - queue
消息队列-queuefrom threading import Threadfrom queue import Queueimport random,time储钱罐def create(queue):for i in [100,50,20,10,5,1,0.5]:if not queue.full():queue.put(i) # 入队列print("Put %sRMB to...原创 2021-06-19 08:00:00 · 74 阅读 · 0 评论 -
并发编程 五 - 死锁
死锁问题死锁的表现:程序死循环如果程序中多个线程相互等待对方持有的锁,而在得到对方的锁之前都不释放自己的锁,由此导致这些线程不能继续运行,这就是死锁。预防死锁的一般做法:如果程序要访问多个共享数据,则首先要从全局考虑定义一个获得锁的顺序,并且在整个程序中都遵循这个顺序,释放锁时,按加锁的反序释放即可。所以必须是有两个或者以上的并发线程,才能出现死锁,如果是多于两个线程之间出现死锁,那么他...原创 2021-06-19 08:03:00 · 95 阅读 · 0 评论 -
并发编程(一) - threading.Thread
python的GIL导致python的并发不同于java,原因不说,下面直接说解决方案concurrent.futures库提供了一个 ProcessPoolExecutor 类, 可被用来在一个单独的Python解释器中使用多核cpu执行计算密集型函数threading库 对I/O密集型接口做多线程并发asyncio(协程) IO 密集型,主流的高性能并发库threading# ...原创 2021-06-14 12:20:00 · 2484 阅读 · 0 评论 -
并发编程(二)multiprocessing.dummy.Pool
multiprocessing.dummy.Poolimport timefrom multiprocessing.dummy import Pooldef run(fn): time.sleep(2) print(fn)if __name__=="__main__": testFL=[1,2,3,4,5] # 迭代对象 pool=Pool(10) ...原创 2021-06-14 23:49:00 · 796 阅读 · 0 评论 -
并发编程四(2) 线程同步 - Semaphore-加锁
Semaphore-加锁from threading import Thread, Semaphoreimport threadingimport timedef worker(s,i): s.acquire() print(threading.current_thread().name + " acquire") time.sleep(i*2) pri...原创 2021-06-18 11:16:00 · 75 阅读 · 0 评论 -
并发编程四(3) 线程同步 - Event-信号传递
Event-信号传递threading.Event源码的解释是这样的,class Event: """Class implementing event objects. Events manage a flag that can be set to true with the set() method and reset to false with the clea...原创 2021-06-18 16:21:00 · 161 阅读 · 0 评论 -
并发编程(三) 线程互斥
线程互斥该实例创建了3个线程t1、t2和t3同步执行,三个线程都访问全局变量data,并改变它的值。当第一个线程t1请求锁成功后,开始访问共享数据data,第二个线程t2和t3也开始请求锁,但是此时t1还没有释放锁,所以t2、t3处于等待状态,直到t1调用lock.release()释放锁,t3才能得到锁。这样就保证了这三个线程共享数据data的一致性和同步性。并且这三个线程是并发执行的,没有...原创 2021-06-17 04:24:00 · 91 阅读 · 0 评论 -
并发编程四(1) 线程同步 - 生产者消费者
线程同步控制线程执行顺序生产者与消费者可以看下打印,是相对有序的from queue import Queue # 队列类import randomimport threadingimport time# 生产者线程class Producer(threading.Thread): def __init__(self,t_name,queue): # ...原创 2021-06-18 11:14:00 · 75 阅读 · 0 评论 -
并发编程四(4) 线程同步 - Condition
Conditionimport threadingimport timedef consumer(cond): with cond: print("consumer before wait") cond.wait() # 等待消费(相当于进程就绪状态) print("consumer after wait")def produce...原创 2021-06-19 07:04:00 · 96 阅读 · 0 评论 -
virtualenv常用操作
安装virtualenvpip install virtualenv安装虚拟环境管理工具pip install virtualenvwrapperpip install virtualenvwrapper-win #windows环境下使用创建目录用来存放虚拟环境mkdir $HOME/.virtualenvs在~/.bashrc中添加下面两行命令export WORKON_H...原创 2021-05-18 10:51:00 · 71 阅读 · 0 评论 -
centos7搭建python3的开发环境(python3,pip3)
本章内容:1.构建python3及pip3开发环境2.yum相关(替换源,误删yum恢复方案)查看Python的位置[root@centos bin]# whereis pythonpython2: /usr/bin/python2 /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /usr/include/pyth...原创 2021-01-18 14:47:00 · 241 阅读 · 0 评论 -
深拷贝浅拷贝
不可变对象:该对象所指向的内存中的值不能被改变,修改对象的值时,由于其指向的值不能被改变,因此实际上是在内存中重新开辟一个地址用来存储新的值,然后将对象指向这个新值。本质上是两个对象,赋值前后对象id发生了变化。python中的不可变对象包括:bool、int、str、float、tuple、frozenset、None。可变对象:该对象所指向的内存中的值可以被改变。变量(引用)的值发生改变时...原创 2020-07-14 00:19:00 · 135 阅读 · 0 评论 -
mock demo
mock demo 目录结构用到的库:unittest:单测框架mock:从python3.3以后,mock已经集成到unittest断言知识点:断言结果:如果成功返回None,如果失败,返回失败信息依赖的外部支付接口__author__ = 'kangpc'__date__ = '2020-6-29 10:46'"""mock demo"""def pay_m...原创 2020-06-29 11:42:00 · 102 阅读 · 0 评论 -
单例例子以及应用场景
'''1.实现__new__方法2.并将一个类的实例绑定到类变量_instance上3.如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回4.如果cls._instance不为None,直接返回cls._instance5.super(Singleton, cls)是object的意思'''class Singleton(object):....d...原创 2019-06-03 23:21:00 · 64 阅读 · 0 评论 -
python3与python2不一样的地方
进入不同语言版本的Python交互环境py -2py -3pip 命令的执行 :py -2 -m pip install xxxxpy -3 -m pip install nose执行python文件py -2 a.pypy -3 a.pypy2:print "hello"py3:print("hello")如果不想py -2这样进入python2,可以进入到pyt...原创 2019-05-24 00:03:00 · 54 阅读 · 0 评论 -
python常见魔法函数
1、__init__():所有类的超类object,有一个默认包含pass的__init__()实现,这个函数会在对象初始化的时候调用,我们可以选择实现,也可以选择不实现,一般建议是实现的,不实现对象属性就不会被初始化,虽然我们仍然可以对其进行赋值,但是它已经成了隐式的了,编程时显示远比隐式的更好,看下面的小栗子:class test1: def method(self): self....原创 2021-07-27 00:54:00 · 176 阅读 · 0 评论 -
python实现比较2个excel
# @Time : '2021-1-11 20:35'# @Author : 'pc.kang'"""使用前请把主键放在A1列并排序,保持两份文件顺序完全一致代码遍历源文件的每一行,然后遍历每行的所有单元格去和目标文件相同位置的值作比较,如果两边不一致,则在源文件把不一致的单元格填充背景色为红色"""import openpyxlfrom openpyxl.styl...原创 2021-01-13 16:21:00 · 204 阅读 · 0 评论 -
使用pyinstaller 打包python脚本为exe程序
简介环境实操演示pyinstaller使用注意的点使用pyinstaller 实现python脚本打包成exe程序1. 简介将python程序打包成exe可执行程序的办法很多,如pyinstaller、py2exe、cx_Freeze等,这里介绍pyinstaller方法2. 环境window 10 64bitpython 3.7.4selenium 3....原创 2020-05-10 22:53:00 · 171 阅读 · 0 评论