![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python学习
文章平均质量分 75
M行者X
这个作者很懒,什么都没留下…
展开
-
python后端学习(十四)元类、ORM
目录元类1. 类也是对象2. 动态地创建类3. 使用type创建类4. 使用type创建带有属性的类5. 使用type创建带有方法的类6. 到底什么是元类(终于到主题了)7. __metaclass__属性8. 自定义元类内建(内嵌)模块:默认加载的模块元类创建类,类创建实例对象元类1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):…原创 2021-04-09 15:00:53 · 114 阅读 · 0 评论 -
python后端学习(十三)路由支持正则、Url编码、增删改操作、增加log日志
路由支持正则mini_frame.pyimport refrom pymysql import connect"""URL_FUNC_DICT = { "/index.html": index, "/center.html": center}"""URL_FUNC_DICT = dict()def route(url): def set_func(func): # URL_FUNC_DICT["/index.py"] = index原创 2021-04-08 13:08:38 · 246 阅读 · 1 评论 -
python后端学习(十二)添加路由、伪静态、静态和动态、MySQL功能
实现最基本的路由功能定义字典 字典的key对应路由的路径,value对应函数的引用mini_frame.pyimport redef index(): with open("./templates/index.html",encoding="utf-8") as f: content = f.read() my_stock_info = "哈哈哈哈 这是你的本月名称....." content = re.sub(r"\{%content%\}", m原创 2021-04-06 13:17:22 · 311 阅读 · 0 评论 -
python后端学习(十一)静/动态资源请求实现、WSGI协议、mini-web框架
多进程-面向对象WEBserverimport socketimport reimport multiprocessingclass WSGIServer(object): def __init__(self): # 1. 创建套接字 self.tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.tcp_server_socket.setsoc原创 2021-03-30 21:29:32 · 221 阅读 · 1 评论 -
python后端学习(十)多继承和MRO顺序、再论静态方法和类方法、property属性及应用、魔法属性、with与“上下文管理器”
多继承和MRO顺序1.单独调用父类的方法# coding=utf-8print("******多继承使用类名.__init__ 发生的状态******")class Parent(object): def __init__(self, name): print('parent的init开始被调用') self.name = name print('parent的init结束被调用')class Son1(Parent): def原创 2021-02-09 17:18:37 · 153 阅读 · 0 评论 -
python后端学习(九)GIL、深/浅拷贝、私有化、import、封装继承多态
GIL面试题描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。Guido的声明:http://www.artima.com/forums/flat.jsp?forum=106&thread=214235he language doesn’t require the GIL – it’s only the CPython virtual machine that has historical原创 2020-12-07 00:55:17 · 170 阅读 · 0 评论 -
python后端学习(七)HTTP协议、实现WEB服务器
HTTP协议简介浏览器---->服务器发送的请求格式如下: GET / HTTP/1.1 请求方式 路径 协议及版本 Host: 127.0.0.1:8080 请求的地址 Connection: keep-alive 长连接 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 可接受数据格式 Upgrade-Insecure-Requests: 1 User-原创 2020-10-18 23:18:49 · 821 阅读 · 0 评论 -
python后端学习(六)正则表达式
re模块操作在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re1. re模块的使用过程 #coding=utf-8 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group()2. re模块示例(匹配以itcast开头的语句)原创 2020-10-12 22:48:51 · 881 阅读 · 0 评论 -
python后端学习(五)迭代器、生成器、协程
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for…in…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。但是,是否所有的数据类型都可以放到for…in…的语句中,然后让for…in…每次从中取出一条数据供我们使用,即供我们迭代吗?>>> for i in 1原创 2020-08-18 22:08:54 · 203 阅读 · 0 评论 -
python后端学习(四)进程、消息队列、进程池
进程以及状态1. 进程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的2. 进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态就绪态:运行的条件都已经慢去,正在等在cpu执行执行态:cpu正在执行其功能等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态进程的创建-原创 2020-08-09 15:40:47 · 235 阅读 · 0 评论 -
python后端学习(三)线程、互斥锁、死锁
多任务任务逐一进行#coding=utf-8from time import sleepdef sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1)def dance(): for i in range(3): print("正在跳舞...%d"%i) sleep(1)def rap(): for i in rang(3): print("正在说原创 2020-08-07 00:23:46 · 164 阅读 · 0 评论 -
python后端学习(二)TCP客户端和服务端
TCP简介TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,“打电话”"TCP特点1. 面向连接通信双方必须先建立连接才能进行数据的传输,双方都必须为该连接分配必要的系统内核资源,以管理连接的状态和连接上的传输。原创 2020-07-29 20:13:36 · 497 阅读 · 0 评论 -
python后端学习(一)UDP socket通信
IP相关ipv4 v指版本 第四代版本 v1v2v3都是实验版本ipv4由四组数字组成 xxx.xxx.xxx.xxx每组数字范围为0-255.ipv4的最大个数就是256的4次方(已快枯竭)ipv6 数量庞大格式例如 fe80::250:56ff:fe32:8cd0C类 ip 192.168.33.xx 前三组数字是网络号 后一组数字是主机号在192.168.33.xx中只能使用254个可以使用的ip,192.168.33.0和192.168.33.255不能使用ip地址不够采用B类IP原创 2020-07-27 22:19:20 · 427 阅读 · 0 评论 -
接口自动化测试(一)Requests模块基本操作
字符串解码和查看请求信息# lebo='天津杰森'# print(lebo)# 字符串编码# lebo_text=lebo.encode()#print(lebo_text)# 字符串解码# print(lebo_text.decode())import requestsurl='http://www.baidu.com'# 发起get请求response=requ...原创 2019-07-18 16:31:03 · 119 阅读 · 0 评论 -
MySQL笔记(五)使用python调用数据库进行操作
python 访问数据库流程在pycharm中下载pymysql打开数据库视图,相当去navicat设置数据库使用python对数据库进行操作from pymysql import *def create_table(): # 创建表 conn = connect("127.0.0.1", "root", "123456", "zpcs",...原创 2019-05-22 15:16:41 · 100 阅读 · 0 评论 -
MySQL笔记(六)使用python封装
新建配置文件[db]db_port = 3306db_user = rootdb_host = 127.0.0.1db_pass = 123456db_name = zpcsdb_charset = utf8[server]ip = 127.0.0.1import pymysqlimport configparserclass ConnMysql(ob...原创 2019-05-24 17:18:02 · 51 阅读 · 0 评论 -
python自动化课程笔记(十四)模块
库为模块的集合python自带的为标准库、自定义库第三方库import os, random #同时导入多个模块#from 包名.模块名 import 函数名#from 模块名 import 函数名1,函数名2#from 模块名 import * # 导入所有 不推荐__all__ = ["函数名",变量名] #与import联用 不在列表内的函数和变量无法...原创 2019-05-22 16:32:37 · 42 阅读 · 0 评论 -
python自动化课程笔记(十三)单例模型、代码性能、抛出异常
#单例模型(重要)class Person (object): __instance = None is_first = True def __new__(cls, *args, **kwargs): #如果类属性__instance的值为None #创建一个对象,并赋值为这个对象的引用,保证下次调用这个方法时 ...原创 2019-05-14 17:43:20 · 65 阅读 · 0 评论 -
python自动化课程笔记(十一)封装、继承、多态
class Dog(object): "good dog" #说明文档 def __init__(self, new_name, color, age=5): self.name = new_name self.color = color self.age = age def __str__(self): #打印...原创 2019-08-13 16:12:44 · 66 阅读 · 0 评论 -
python自动化课程笔记(十二)闭包、装饰器
闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁#闭包def test(number1): # 外部函数 print("in test") def test_in(number2): ...原创 2019-04-24 15:14:07 · 84 阅读 · 0 评论 -
pycharm快捷键、常用设置、配置管理
本文转载自: http://blog.csdn.net/pipisorry/article/details/39909057本博客一直在同步更新中!内容包含:pycharm学习技巧 Learning tips、PyCharm3.0默认快捷键(翻译的)、pycharm常用设置、pycharm环境和路径配置、Pycharm实用拓展功能:pycharm中清除已...转载 2018-12-18 21:34:10 · 442 阅读 · 4 评论 -
python自动化笔记(一)pycharm工具和python语言基础
New_project下Django 和Flask 是开发框架Interpreter 解释器Setting ->Editor-> file and Code Templates 文件与代码模版 新建出现开头代码#Date:KaTeX parse error: Expected 'EOF', got '#' at position 8: {DATE}#̲[[END$]]# 勾选E...原创 2019-05-16 16:56:54 · 349 阅读 · 0 评论 -
用python 书写简单的学生管理系统
学习python第一个写的小程序,fighting!!!# 加载数据def load_data(): global doc doc_open = open("doc.txt", "w+", encoding='UTF-8') if len(doc_open.read()) == 0: doc =原创 2019-01-09 14:40:46 · 820 阅读 · 0 评论 -
图解算法中的算法实例
def binary_search(list, item): low = 0 high = len(list)-1 while low <= high: mid = int((low + high)/2) guess = list[mid] if guess == item: return mi...原创 2019-01-16 12:44:40 · 178 阅读 · 0 评论 -
python自动化笔记(三)字符串
字符串相关操作str = "abc123abc123"str_index = str.find("a") #找出a的下标 从左往右 没有则返回-1str_index = str.rfind("a") #找出a的下标 从右往左 没有则返回-1str_index = str.find("a", 2) #找出a的下标 从左往右第二个 str_in = str.index...原创 2019-05-16 16:57:25 · 197 阅读 · 0 评论 -
python自动化笔记(二) 循环
while循环pass 直接通过不进任何操作# TO DO 用来标记提醒未完成的事件循环嵌套for i in range(0,5): print(i)#定义一个死循环while True: passbreak和continue 只能用在循环里,continue 为跳过此次循环,break为跳出此循环# 当for循环中执...原创 2019-05-16 16:57:11 · 600 阅读 · 0 评论 -
python自动化笔记(四)列表
my_list = [] #定义一个空列表my_list1 = ["a","b","c"]my_list2 = list("abc") #mylist1和mylist2效果一致i = 0while i <=len(my_list1): #循环输出list print(my_list1[i]) i += 1for val in list2: #循环打印list...原创 2019-05-16 16:57:42 · 238 阅读 · 0 评论 -
python自动化笔记(五)元组、字典和集合
#定义一个空的元组my_tuple = ()my_tuple1 = tuple()#定义一个元组my_tuple = (1,10,100,1000,)#查询元组if 10 in my_tuple: print('存在')else: print('不存在')index = my_tuple.inex(10) #返回元素的索引index1 = my...原创 2019-05-16 16:57:58 · 200 阅读 · 0 评论 -
python自动化笔记(八)匿名函数、列表推导式
a = (1) # a为整型并非元祖b = (1,) # b为元组匿名函数 lambda用lambda能创建小型匿名函数,语法只包含一个语句f = lambda: print("lebo") #定义一个无参无反的匿名函数 f为变量f() #调用匿名函数f = lambda: 3.14 #定义一个无参有反的匿名函数f = lambda a: print(a) #定义...原创 2019-05-16 16:58:29 · 243 阅读 · 0 评论 -
python自动化课程笔记(六)函数
函数 类 模块 包 项目包与文件夹的区别在于 包中有很多模块 和init文件函数:提高编码的效率及代码的重用,把独立功能的代码块组成一个小模块def printInfo(): #定义一个函数 print('-'*10) print('人生苦短,我用python') print('-'*10)printInfo() #调用函数def test(a,b):...原创 2019-04-14 15:28:54 · 68 阅读 · 0 评论 -
python自动化笔记(七)局部变量和递归
my_num = 200 #全局变量def my_func(): my_num = 10 #局部变量 函数内部有同名的局部变量,优先采用局部变量 print(my_num)def my_func1(): global num #局部变量转换为全局变量 也可修改全局变量 num = 20 a = 10pi = 3.14flag = True...原创 2019-05-16 16:58:45 · 303 阅读 · 0 评论 -
python自动化笔记(九)文件操作
文件的打开file = open("test.txt","w" enccoding="utf-8") #参数 文件名 访问模式 write 默认为read file.write("hello python") #删除原有内容 并写入ret = file.read() #读取文本内容ret = file.read(1) #读取1个字符ret1 = file.readline() #...原创 2019-05-16 16:59:23 · 237 阅读 · 0 评论 -
python自动化课程笔记(十)面向对象编程、__init__方法
三大思想:封装、继承、多态..class Hero: #关键字 类名 定义一个经典类 类名需要使用大驼峰命名 passclass Hero(object): #新式类 object为父类(基类) python2中通常不加object def __init__(self): #魔法方法 初始化对象默认属性(创建对象成功就会执行init方法)...原创 2019-04-23 10:06:25 · 69 阅读 · 0 评论