自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python项目中的配置文件

灵感来自与Django源码 import importlib import os class Settings: def __new__(cls, settings_module=None): if not hasattr(cls, '_has'): obj = object() settings_module = settings_module if settings_module else os.environ.get('SET

2021-03-11 11:40:03 131

原创 命令行解析总结

argparse """ argparse(python自带) """ import argparse # 初始化解析器 parser = argparse.ArgumentParser() # 定义参数 parser.add_argument("-f", "--file", help="统计指定文件类型") # 解析 args = parser.parse_args() print(f"传入参数:{args.file}") click """ click(Flask作者写的) pip instal

2021-03-11 10:27:45 139

原创 sql执行过程解析&索引&优化&锁

sql执行过程 将from后面的数据库表文件加载到内存 如果有where,则对表进行过滤,取出符合条件的数据并生成一张临时表,(where是对从数据库表文件加载到内存中的原生数据过滤) 若果有group by,则将表按条件进行分隔,分隔成若干个临时表 select执行读取时,按有无group by两种情况: a) 没有group by,select会根据后面的字段名称,对内存中的临时表整列读取 b) 有group by,会对内存中的若干临时表分别执行select,而且只取各临时表的第一条数据,然后形成新的

2021-03-10 15:34:47 112 2

原创 对http的一些浅谈

基本认识 http协议底层是TCP/IP协议,也就是说,get/post都是TCP链接 get和post的本质区别 get在浏览器回退时时无害的,而post会再次提交请求 get会被浏览器主动cache,而post不会,除非手动设置 get只能进行url编码,而post能支持多种 get参数有长度限制,而post没有。(大多数浏览器限制url长度为2K,大多数服务器最多处理64K大小) post更安全,因为post参数在body中,get直接暴露在url中 get产生一个TCP数据包,post会产生两

2021-03-10 15:27:53 51

原创 性感的装饰器

装饰器在文件加载时就会被调用 运用在mysql中 import functools import pymysql from pymysql.cursors import DictCursor from DBUtils.PooledDB import PooledDB class Mysql(object): __pool = None def __init__(self): self._conn = Mysql.__get_conn__() self.

2021-03-10 15:14:18 52

原创 GIL

GIL存在的原因 python内核基于C编写, 大部分C语言库都不是原生线程安全的 特性 多线程进行cpu密集型计算,会存在频繁的上下文切换,使得效率低下 多线程只对I/O密集型计算产生正面效果,而至少有一个cpu密集型线程存在,那么多线程效率就会因GIL而大幅下降 py3对GIL的改进 强制线程在固定时间后释放 cpu密集型会优先获取 在其他线程有机会运行之前,不允许当前线程重新获取(动态调整自身的优先级,py2.x没有此机制) ...

2021-03-10 12:51:24 70

原创 python魔法方法小感

方法介绍 __getattr__: 访问不存在的属性,会自动调用这个函数作为返回值 __getattribute__: 那么无论访问什么属性,都是通过这个函数获取,包括方法;如果__getattribute__抛出了AttributeError异常,并且定了了__getattr__函数,那么会调用__getattr__这个函数,不论这个属性到底是不是存在,也就是说属性访问的一个大致优先级是:__getattribute__ > __getattr__ > __dict__ __dict__:

2021-03-10 12:44:33 84

空空如也

空空如也

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

TA关注的人

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