随笔分类 - Python
Python-多线程调用计算请求时间
摘要:使用多线程调用某个方法(请求),计算每个线程消耗时间 import threading import time import requests import json import concurrent.futures def input_req(): url = "https://xxxxxxxx
Python-PyMySQL的一些使用注意事项
摘要:一、关于group by的使用 在部分mysql版本(5.7.xx及以上)中,若select的列中,包含了未被group by的字段,会报以下错误: ```sql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY cla
Python-闭包函数及深入
摘要:# 一、闭包函数 ## (一)什么是闭包函数 python的装饰器是依靠闭包函数实现的。 以下为维基百科的定义: > 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调
Python-Flask配置https证书
摘要:# 零、问题 错误:SSL Version 2 and 3 Protocol Detection # 一、说明 1、通过使用flask 框架配置https证书进行HTTPs证书配置后会被扫描到漏洞, 漏洞描述如下: ```python 远程服务接受使用SSL2.0和/或SSL3.0加密的连接。这些版
Python-保存request请求为各种文件
摘要:文件下载相关工具 ```python import json import requests class CustomFileTools(object): def download_json_file(self, json_url, save_path): """ 下载json文件并保存 """ j
Python-大文件上传requests-toolbelt
摘要:# 一、简介 requests.post发送文件的方式是把所有文件读取内存中,再构建请求发送出去。当发送大文件时候(好几个G)就会导致内存不足OOM 默认使用的requests.post较难做到分段文件发送(大概思路:先计算原文件md5,再切分文件发送,到接收端组合再计算md5,较麻烦不推荐,可参考
Python-socket通信
摘要:一、基于udp协议的套接子通信 TCP协议与UDP协议的比较 可靠性 tcp协议是可靠协议: 对方必须回复一个ack确认信息,才会将自己这端的数据从内存中删除 udp协议不可靠: 发送一条消息就会立即删除,不管对方是否接收到 有无链接 tcp有链接,udp无链接 传输数据的效率 udp更高,因为ud
Python-编程小技巧
摘要:1.Pycharm的自动提示 from django.core.handlers.wsgi import WSGIRequest # pycharm的自动提示 request=request # type: WSGIRequest 2.如果encode和decode记混了,可以用下面的方式 1 方式
Python-常见内置函数
摘要:map map() 会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 在Python2中返回列表,在python3中返回迭代器。 def square(x): return x
Python-迭代器与生成器
摘要:一、迭代器 迭代:是一个重复的过程,但每次重复都是基于上一次的结果而来的 迭代器:就是一种不依赖于索引的取值工具 为什么要用迭代器: 1.迭代器是一种通用的迭代取值方法(可以无视是否有索引) 2.惰性计算,节省内存。迭代器在生成时,并没有产生值,并不会占用很多内存。在每次使用next方法后,会临时计
Python-多态
摘要:一、在子类派生的新方法中重用父类功能的方式二 super()方法:调用super(自己的类名,self)会返回一个特殊的对象,super(自己的类名,self).属性,会参照属性发起者类的mro列表去当前所在类的父类中查找属性。 # 在python3中,会自动帮你添加super需要的两个默认参数,可
Python-封装
摘要:一、封装 隐藏属性 封装:封装是面向对象三大特性之一。在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。 1、在封装的
Python-函数递归
摘要:一、函数递归 引入 函数的递归调用:就是在调用一个函数的过程中又直接或间接地调用自己 示例1:直接调用自己 def foo(): print('hello') foo() foo() # 无限递归,会抛出异常,调用python对象超过最大递归深度 示例2:间接调用自己 def bar(): prin
Python-函数基础
摘要:什么是函数 具备某一功能的工具 对于工具的使用,我们应该先准备好工具,然后再使用。即我们对函数应该先定义后引用。和变量一样。 为什么用函数 1、程序的组织结构不清晰,可读性差 2、如果要用到重复的功能,只能拷贝功能的实现代码=》代码冗余 3、可扩展性差 如何使用函数 函数使用原则:先定义后引用 #
Python-基础类型dict
摘要:用途 按key:value的形式存放多个任意类型的value,key反映的是value的属性 因为字典的key是不能重复的,所以我们也可以利用这个特点来去重 定义方式 在内用逗号分隔开多个key:value,其中value可以是任意类型,而key必须是不可变的类型,通常是字符串类型。若key为可变类
Python-基础类型int与float
摘要:整型int **用途:**记录年龄,个数,号码等 定义方式: age = 18 # 该代码等于 age = int(18),这个也是把纯数字字符串改为整型的工作原理 s = '123' print(type(s)) s = int(s) print(type(s)) <class 'str'> <c
Python-基础类型list
摘要:用途 序列中的每个元素都分配一个数字表示它的位置,也叫索引。与字符串一样,第一个位置的索引是0,第二个索引是1,依此类推。下面介绍的元组的索引也算如此计算。 定义 在[ ]内用逗号分割开多个任意类型的元素 l = [1,2,'hello',[3,4]] 数据类型转换 res1=list("hello
Python-基础类型set
摘要:作用 1.去重 集合内不可能出现相同的元素 2.关系运算 如:共同好友、共同关注...、交叉并集... 用集合就是用上面两个功能 如果都用不上 那么就不要用 定义 s = {1,2,3,4,5,6,7,8} """ 1.集合内的元素必须是不可变类型 2.元素与元素之间逗号隔开 不是键值对 3.集合内
Python-基础类型str
摘要:字符串型 **用途:**记录有描述性的状态,如名字,公司名称,家庭地址等 **定义方式:**在引号(' '或者" "或者''' ''')包含一串字符 s = 'hello' # 与s = str('hello')等价,str()可以把任意类型转成字符串型 常用操作及内置方法: 以下所有方法必须掌握
Python-基础类型tuple
摘要:元组相当于一个不可修改的列表,除了不能存之外,取的操作同列表一样。 用途 按照索引存放多个任意类型的值,索引反应的是位置/顺序 定义方式 在()内用逗号分隔开多个任意类下的值或者元素 强调:当元组内只有一个元素时,必须加逗号 # 错误方式 t=(10) print(type(t)) <class '