Python日常笔记
一枚小小菜鸟
这个作者很懒,什么都没留下…
展开
-
Python日常笔记(40) - 元类实现orm
元类实现ORMORM 是 python编程语言后端web框架 Django的核心思想,“Object Relational Mapping”,即对象-关系映射,简称ORM。一个句话理解就是:创建一个实例对象,用创建它的类名当做数据表名,用创建它的类属性对应数据表的字段,当对这个实例对象操作时,能够对应MySQL语句。实例:class ModelMetaclass(type): de...原创 2020-03-25 18:17:14 · 133 阅读 · 0 评论 -
Python日常笔记(39) - 路由(route)增删改查
根据上一章节使用了路由映射到具体执行函数,今天进一步优化以及增加添加与修改代码:import osimport refrom pymysql import *# 导入url编码模块import urllib.parse# 添加日志模块import logging# 测试使用# print(os.path.abspath(__file__)) # 显示当前文件的地址# pr...原创 2020-03-25 18:16:41 · 638 阅读 · 0 评论 -
Python日常笔记(38) - url编码及日志
url编码一般来说,前端访问到后端的情况下,文中都会被url编码过的,所以后端需要对其解码:import urllib.parse# Python3 url编码print(urllib.parse.quote("我是pyhton初学者"))# Python3 url解码print(urllib.parse.unquote("%E6%88%91%E6%98%AFpyhton%E5%88%...原创 2020-03-25 18:15:46 · 281 阅读 · 0 评论 -
Python日常笔记(37) - 路由(route)
路由(route)简单来说路由就是一个映射器,利用一个给定的参数来映射到对应的指定路径或者执行函数等等。改版miniweb服务器来把前面一章节自定义的一个mini框架改成路由的版本。mini_frame.py代码:import osimport refrom pymysql import *# 测试使用print(os.path.abspath(__file__)) # 显示...原创 2020-03-25 18:15:13 · 1886 阅读 · 0 评论 -
Python日常笔记(36) - 装饰器
闭包在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包案例:# 闭包def print_info(name, age): def info(sex): print(f"姓名:{name},年龄:{age},性别:{sex}") # 只是将一个内部方法引用返回,记住不能加括号,如果加括号就变成了执行函数了...原创 2020-03-25 18:14:37 · 128 阅读 · 0 评论 -
Python日常笔记(34) - Mysql主从数据库
MySQL主从同步配置主从同步的定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。使用主从同...原创 2020-03-25 18:14:02 · 369 阅读 · 1 评论 -
Python日常笔记(33)- python和Mysql交互
python和Mysql交互需要安装pymysql,必须要有外网安装命令:pip install pymysqlCREATE DATABASE `clouddb02`USE `clouddb01`;/*Table structure for table `dept` */DROP TABLE IF EXISTS `dept`;CREATE TABLE `dept` ( `dep...原创 2020-03-25 18:13:23 · 123 阅读 · 0 评论 -
Python日常笔记(32)- Mysql高级应用
视图对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来非常麻烦视图是什么,通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据...原创 2020-03-25 18:12:53 · 149 阅读 · 0 评论 -
Python日常笔记(31)- Mysql应用
数据类型可以通过查看帮助文档查阅所有支持的数据类型使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间常用数据类型如下:整数:int,bit小数:decimal字符串:varchar,char日期时间: date, time, datetime枚举类型(enum)特别说明的类型如下:decimal表示浮点数,如decimal(5,2)表示...原创 2020-03-25 18:12:24 · 116 阅读 · 0 评论 -
Python日常笔记(30)- 浅拷贝深拷贝
浅拷贝注意:浅拷贝对不可变类型和可变类型的copy不同copy.copy对于可变类型,会进行浅拷贝copy.copy对于不可变类型,不会拷贝,仅仅是指向import copy# 浅拷贝,只是复制了地址,也就是说copy的最顶层a = ["a1", "a2", "a3"]b = aprint(">>"*50)print(id(a))print(id(b))c =...原创 2020-03-24 13:22:36 · 105 阅读 · 0 评论 -
Python日常笔记(29)- 模仿web服务器-非阻塞版本
模仿web服务器 - 多进程-多线程-协程实现-短连接非阻塞# 导入socketimport socket# 导入多线程import threading# 导入进程import multiprocessing# 导入协程工具包import geventfrom gevent import monkey# 导入正则表达式import re# 将程序中用到的耗时操作的代码,换...原创 2020-03-24 13:10:22 · 112 阅读 · 0 评论 -
Python日常笔记(28)-http协议-模仿web服务器
简单来说就是浏览器和服务器之间的一种通信协议.看一个图来模拟客户端和服务端通信的过程浏览器像服务器发送的请求头信息格式分析GET /index.html HTTP/1.1表示客户端请求的是/index.html地址,HTTP/1.1表示http协议的1.1版本,一般GET与HTTP/1.1之间显示的就是客户端访问的地址Host: 192.168.153.1:8080表示请求服务器的地...原创 2020-03-24 13:08:32 · 143 阅读 · 0 评论 -
Python日常笔记(27)- 正则表达式
正则表达式在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为reimport re# 判断字符串中是否包含hello字符串bool = re.match("hello", "hello world")# 如果有返回值则表示包含,没有则表示不包含print(bool)# 判断字符串中是否包含大小写h和H字符bool = re.match("[hH]...原创 2020-03-24 13:04:25 · 482 阅读 · 0 评论 -
Python日常笔记(26)- 协程
协程-迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。代码演示:import timeclass MyList(object): def __init__(self): self.list1 = list() # 定义一个迭代数据的下标 ...原创 2020-03-24 12:53:04 · 100 阅读 · 0 评论 -
Python日常笔记(25)- 进程池
进程池当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到...原创 2020-03-24 12:42:47 · 92 阅读 · 0 评论 -
Python日常笔记(24)- 进程
进程一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情语法:Process([group [, target [, name [, args [, kwa...原创 2020-03-24 12:39:39 · 77 阅读 · 0 评论 -
Python日常笔记(23)- 多线程
线程python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用代码:import threadingimport timedef hello(): for index in range(5): print("我是 hello-------------------",end="\n") ...原创 2020-03-24 12:34:28 · 107 阅读 · 0 评论 -
Python日常笔记(22)- socket
TCPTCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。面向连接通信双方必须先建立连接才能进行数据的传输,双方都必须为该连接分配必要的系统内核资源,以管理连接的状态和连接上的传输。双方间的数...原创 2020-03-24 12:20:56 · 106 阅读 · 0 评论 -
Python日常笔记(21)- udp
IpIp v4全名 IP version4 意思就是ip的第四个版本格式 xxx.xxx.xxx.xxx,总共ip数就是256256256*256端口号Linux系统中,端口号可以有65535(2的16次方)之多端口号是通过端口号来标记的,端口号只有整数范围从0到65535动态端口范围是 1024-655351.网络通讯主要参数:目标ip,目标端口,发送的内容,本地ip,本地端口S...原创 2020-03-24 12:20:29 · 81 阅读 · 0 评论 -
Python日常笔记(20) - 基础巩固
面向对象学员管理系统添加删除修改查询系统需求使用面向对象编程思想完成学员管理系统的开发学员数据储存在文件中系统功能:添加学员信息,删除学员信息,修改学员信息,查询学员信息,显示学员信息,保存学员信息,退出系统注意:为了方便维护代码,一般一个角色一个程序文件,项目入口程序,习惯为main.py创建程序文件创建目录名称:StudentManangerSystem程序文件名称:入...原创 2020-03-23 18:32:03 · 137 阅读 · 0 评论 -
Python日常笔记(19) - 模块导入
模块导入模块的方法Import 模块名From 模块名 import 模块名From 模块名 import *# 第一种导入模块开平方模块import mathprint(math.sqrt(9))# 第二种导入模块开平方模块from math import sqrtprint(sqrt(9))# 第三种导入模块开平方模块from math import *print(s...原创 2020-03-23 18:26:54 · 156 阅读 · 0 评论 -
Python日常笔记(18) - 异常
异常当检测到一个错误的时候,解释器就无法继续执行了,并且出现一些错误的提示,这个就叫做异常了。完整语法:try: print(1 / 0) # 一般try中只放一行代码except Exception as error: print("error出现异常") # 异常报错之后执行的代码else: print("没有异常时,继续执行的代码")finally: pr...原创 2020-03-23 18:10:19 · 97 阅读 · 0 评论 -
Python日常笔记(17) - 多态
类属性和实例属性类属性:类对象所拥有的属性,他被该类的所有实例对象所拥有。也可以使用类对象或实例对象方法,类属性只能通过类调用修改,如果使用对象修改则是重新创建了一个同名属性而已class Dog(object): number = 10class WangCai(Dog): passclass XiaoHei(Dog): passdog = Dog();Dog.nu...原创 2020-03-23 17:51:42 · 95 阅读 · 0 评论 -
Python日常笔记(16)- 继承
继承Python面向对象的继承指的是多个类之间所属关系,子类默认继承父类所有方法和属性,并且所有类默认都是继承object类,object是顶级类,其它类都叫做派生类.继承有单继承和多继承单继承:表示某一个类继承一个单一的类叫做单继承多继承:表示某一个类可以同时继承多个父类叫做多继承,但是当一个类继承多个父类的时候,默认使用从左到右使用第一个父类的同名属性和方法单继承实例# 父类cl...原创 2020-03-23 17:21:18 · 256 阅读 · 0 评论 -
Python日常笔记(15) - 面向对象
面向对象类,属性,方法,对象体验# 类,属性,方法,对象体验class Student: no = 0 name = "" age = 0 def print(self, no, name, age): self.no = no self.name = name self.age = age print(f"学号...原创 2020-03-23 17:14:59 · 84 阅读 · 0 评论 -
Python日常笔记(14)-IO/文件备份
文件操作open() 方法注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。open(file, mode='r')完整的语法格式为:open(file, mode='r', buffering=-1, encoding=None, errors=None, newlin...原创 2020-03-23 16:51:44 · 116 阅读 · 0 评论 -
Python日常笔记(13) - Lambda-递归
递归递归就是自己调用自己必须要有跳出出口案例# 3+2+1=6def sum_func(num): if num == 1: return 1 return num + sum_func(num - 1)print(sum_func(3))Lambdalambda表达式的参数可有可无,函数的参数在lambada表达式中完全适用Lambda表达式可以...原创 2020-03-22 18:41:15 · 948 阅读 · 0 评论 -
Python日常笔记(12) -学生管理系统
练习学员管理系统添加学员删除学员修改学员信息查询学员信息显示功能界面退出系统# 1.显示功能界面def show_info(): print(""" -------------------------------- 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示功能界面 6.退出系统 ----------------...原创 2020-03-22 18:25:25 · 318 阅读 · 0 评论 -
Python日常笔记(11) - 函数/拆包
函数函数是组织好的,主要是为了重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,叫做自定义函数格式:def 函数名(参数列表): 函数体举例# 函数定义x+y的值def func(x, y): # 函数名 # 函数体 print(f"{...原创 2020-03-22 18:19:24 · 406 阅读 · 0 评论 -
Python日常笔记(10) - 公共方法/推导式
公共运算符运算符描述支持的容器类型+合并字符串,列表,元组*复制字符串,列表,元组in元素是否存在字符串,列表,元组,字典not in元素是否不存在字符串,列表,元组,字典print("=====================+号合并============================")print("zhangsan" + ...原创 2020-03-21 15:06:54 · 104 阅读 · 0 评论 -
Python日常笔记(9) - 字典/集合
字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,但是字典中的key只能出现一次。实例d={key:value}字典新增和修改都是同一个操作,也就是说key有就修改,没有就新增,访问元素直接根据dict[key]访问值dict1 = {}# 添加和修改都是同...原创 2020-03-21 14:57:05 · 140 阅读 · 0 评论 -
Python日常笔记(8) - 列表元组
列表/元组列表是Python中最基本的数据结构。列表可以一次性存储多个数据,并且每个数据类型可以不同,列表中的每个元素都会有一个索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。列表都可以进行的操作包括索引,切片,加,乘,检查成员。列表格式:[数据1,数据2,数据3,数据4,数据5,数据6,...]获取列表中的指定数据可以根据所以...原创 2020-03-21 14:52:14 · 186 阅读 · 0 评论 -
Python日常笔记(7) - 字符串
字符串字符串是Python中最常用的数据类型,我们一般使用引号来创建字符串,并且字符串是不可变的。实例:# 字符串可以双引号,单引号以及三引号都可以创建str1 = "hello world"str2 = 'hello world'# 三引号可以支持回车换行str3 = '''hello111world'''str4 = """helloworld"""print(type(...原创 2020-03-21 14:37:42 · 100 阅读 · 0 评论 -
Python日常笔记(6) - 循环
whlie循环while 判断条件(condition): 执行语句(statements)……案例:index = 1while (index <= 3): print(f"循环第{index}次") index += 1while注意事项:while循环容很容易忘记书写计数器(index+=1),如果不写就会变成死循环break/continuebr...原创 2020-03-21 14:10:57 · 215 阅读 · 0 评论 -
Python日常笔记(5) - 条件控制
条件控制if/elseif语法if 条件表达式:# 条件成立执行if代码块 # 执行代码num = 10if num < 11: #条件成立执行print()方法 print("num确实小于11")If/else语法num = 20if num < 11: print("num确实小于11")else: print("num大于11")...原创 2020-03-21 14:02:00 · 171 阅读 · 0 评论 -
Python日常笔记(4) - 运算符
运算符交互式开发环境,主要测试时使用,运算符测试都直接在这个上面使用,这样可以省去print()算术运算符运算符 描述 实例 + 加 1+1输出结果2 - 减 1-1输出结果0 * 乘 2*2输出结果4 / 除 6/3输出结果2.0 // 整除 9//4输出结果2 % 取余 9...原创 2020-03-21 13:51:23 · 160 阅读 · 0 评论 -
Python日常笔记(3) - 基础语法
1.Python变量变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息,都实用驼峰命名规则,例如:myNum1,myNum2MyNum1 = 1MyNum2 = 1.1# 整形print(type(num1) == int)# 浮点型print(type(num...原创 2020-03-20 20:47:38 · 96 阅读 · 0 评论 -
Python日常笔记(2) - PyCharm下载与安装
新建项目与配置就直接截图看着方便新建项目然后直接create创建项目文件即可.配置设置IDE字体设置代码字体为20修改python解释器(如果你默认的python解释器就是你要添加的那么这个步骤可以不设置)创建第一个文件下面书写一个输出hello world python语句项目管理,如果想打开多个项目如图然后选择你要打开的第二个项目作者:...原创 2020-03-20 20:38:38 · 86 阅读 · 0 评论 -
Python日常笔记(1) - 环境安装
疫情期间被困在家里了,今天闲来无事重新整理下python学习的笔记都记录下。老司机就别喷就行,纯属个人日常学习笔记Python安装windows版本–下载地址https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe双击安装如图:Path就是安装环境变量安装成功之后cmd,命令:python 文件,直接执行程...原创 2020-03-20 20:20:22 · 131 阅读 · 0 评论