自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 form表单

表格<!--基本语法--><table> <caption> 标题 </caption> <thead> <tr> <th></th> </tr> </thead> <tbody> <tr> <td></td>

2020-10-12 10:15:18 325

原创 head/body内常用标签

head常用标签#网页标题<title></title> #定义内部样式表,用于书写css代码<style></style> #内部用来书写js代码,通过src可以将外界的js文件导入<script src=" "></script> #引入外部css文件,通过href可以导入外部的css文件<link rel="stylesheet" href=" ">#针对浏览器的搜索显示出不同的信息<

2020-09-27 10:04:25 233

原创 html基本知识

html基本知识web服务的本质是什么​ web服务的本质是一个套接字软件,浏览器是客户端,我们向服务端发送请求,服务器对我们的请求进行响应,然后我们获得需要的数据​ 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面Http协议'''http就是超文本协议 专门用于规范服务器端与客户端交互的格式'''四大特性: 1.基于请求响应 2.基于TCP/UDP

2020-09-27 10:02:51 279

原创 记录语法及单表查询

单表查询增#插入数据insert into 表名(字段名 可以指定你要往哪个字段插入数据) values (插入的值,与前面一一对应)#插入查询的数据insert into 表名(字段名) select(字段名) from 表名 where ;删#删除表内所有数据delete from 数据库.表名#指定表内数据删除delete from 表名 where 条件#清空整张表truncate 表名;改#更新数据update 表名 set 字段名 = 条件, where

2020-09-02 19:51:18 100

原创 数据库数据结构

数据结构数字类型TINYINT1 byte(-128,127)(0,255)小整数值SMALLINT2 bytes(-32 768,32 767)(0,65 535)大整数值MEDIUMINT3 bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4 bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值B

2020-09-02 19:50:11 683

原创 数据库种类及my.ini的设置

数据库种类数据库可以分为两大类关系型数据库:需要有表结构​ 例如:sqllite,db2,oracle,access,sql server,MySQL非关系型数据库:以key-value类型保存的​ 例如mongodb,redis,memcache#授予他人访问当前数据库的权限操作#授予192.168.11字段网关访问权限的操作,并设置密码为123grant all privileges on *.* to "root"@"192.168.11.%" identified by "123";

2020-09-02 19:49:24 120

原创 数据库约束

数据库约束PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录FOREIGN KEY (FK) 标识该字段为该表的外键NOT NULL 标识该字段不能为空UNIQUE KEY (UK) 标识该字段的值是唯一的AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)DEFAULT 为该字段设置默认值UNSIGNED 无符号ZEROFILL 使用0填充​ unique有一种联合的方式,使用方法是(字段名)将两个

2020-09-02 19:48:36 84

原创 数据库操作库语法&操作表语法

操作库语法select user():查询当前用户#1. 操作文件夹 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1;操作表语法#2. 操作文件先切换到文件夹下:use db1 1.增:create table t1(id int,name char

2020-09-02 19:46:06 95

原创 数据库忘记密码的重置方式

数据库基本设置​ 数据库登录:mysql -u(用户名) -p"(密码)"​ 设置密码:mysqladmin -u(用户名) password"(密码)"​ 修改密码:mysqladmin -u(用户名) -p"(原密码)" password “(新密码)”​ 初始化:mysqld --initialize --console #初始化部分库,不使用也没关系​ 做成系统的服务:mysqld --install忘记密码的重置方式1.关闭mysql服务:net stop MySQL2.在my.i

2020-09-02 14:44:07 480

原创 css样式

CSS(Cascading Style Sheet)css注释/*这是注释*/css语法选择器 +声明,每个声明之后用分号结束。声明又包括了属性和值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gAdDfrCH-1599017525097)(C:\Users\QAQ\Desktop\python学习\图片\前端\css格式.png)]css格式css的几种引入方式行内样式:<p style="color: #66ccff"></p>

2020-09-02 11:32:53 140

原创 表格与表单

表格<!--基本语法--><table> <thead> <tr> <th></th> </tr> </thead> <tbody> <tr> <td></td> </tr> </tbody></table>

2020-09-02 11:31:48 70

原创 html常用标签

head常用标签#网页标题<title></title> #定义内部样式表,用于书写css代码<style></style> #内部用来书写js代码,通过src可以将外界的js文件导入<script src=" "></script> #引入外部css文件,通过href可以导入外部的css文件<link rel="stylesheet" href=" ">#针对浏览器的搜索显示出不同的信息<

2020-09-02 11:28:52 106

原创 Http协议的四大特性、请求格式以及响应状态码

html基本知识web服务的本质是什么​ web服务的本质是一个套接字软件,浏览器是客户端,我们向服务端发送请求,服务器对我们的请求进行响应,然后我们获得需要的数据​ 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面Http协议四大特性'''http就是超文本协议 专门用于规范服务器端与客户端交互的格式'''四大特性: 1.基于请求响应 2.基于TC

2020-09-02 11:26:49 893

原创 协程

协程​ 协程简单的说就是在单线程下实现并发的效果的状态。协程实际是并不存在的事物,这是人们通过模拟cpu运行的方式,让单线程也能实现并发而创造的。​ 我们可以想一下cpu在遇到多个任务时是怎么做的。其实本质就是在多个任务之间来回的进行切换,由于cpu的切换速度过快,导致我们感受到仿佛一直在工作,现在我们就要模仿这个过程,让一个线程在遇到io操作的时候进行切换 ,去完成另一个任务,这与线程和进程的做法是一致的,唯一的区别就是这是由我们认为控制的,而线程于进程是由操作系统帮助我们控制的。​ 值得一提的是,

2020-08-26 08:28:39 100

原创 python线程

线程​ 若将进程比喻为一个工厂,那么线程就是其中的一个工人。​ 那么之前我们为了解决问题创建的多进程就等于创建了多个工厂,而每个工厂里面却只放入了一个工人,毫无疑问,这是一种非常浪费资源的现象。​ 接下来我们就来了解一下线程。首先我们来具体的了解下线程与进程的区别线程与进程的区别1.线程与进程相比占用的系统资源小很多2.线程共用进程的空间,进程则有自己的内存空间3.线程可以直接访问他们的父进程的数据,进程则是对他们的父进程进行了数据的副本复制4.线程与线程可以直接进行通讯,进程则必须使用进

2020-08-26 08:27:39 111

原创 python进程中队列的使用方法与生产者消费者模型

队列进程彼此之间本身是相互隔离的,如果要实现进程间通信,multiprocessing模块支持两种形式:队列和管道我们一般都以队列的方式去实现我们进程之间的通讯Queue(maxsize)#可以在初始化的时候设置最大能存几条数据q.put#存放数据的方式,每调用一次就可以存放一次 #两个参数 1.blocked#(阻塞) 配合timeout等使用,一般默认为True 2.timeout#若blocked为true,你设置该参数后,在一定时间内若队列为满,导致你的put()中的数无法

2020-08-24 14:41:49 358

原创 僵尸进程与孤儿进程(理论)

僵尸进程与孤儿进程(了解)​ 僵尸进程(有害):​ 僵尸进程的含义是在子进程死亡后的一个过程。僵尸进程本意是为了让父进程可以在任意时刻去查看子进程的状态信息,因此在子进程死亡后不会直接清除他的所有数据,会保留他的部分数据以及端口号。​ 但是这也导致了若是父进程是一个不断循环的进程的时候,端口被占用的情况会越来越多,这也导致我们可以使用的端口会变的越来越少。那么我们应该如何解决这个问题。​ 1.父进程死亡的时候,系统会让init接管这些子进程,并杀死这些僵尸进程,因此我们可以使用把父进程结束的方

2020-08-24 14:39:52 117

原创 守护进程&互斥锁

守护进程​ 守护进程的含义就是,有一个子进程,若是父进程优先该子进程结束,那么该子进程会在父进程结束的同时结束自己。这一般用于父进程结束后子进程的运行便无意义的情况​ ps:守护进程的内部是无法在创建一个子进程的#守护进程from multiprocessing import Processimport timedef test(): print('====>test') time.sleep(2) print('====>test_end')if _

2020-08-24 14:39:15 116

原创 python创建进程的方式

多进程操作​ 在我们了解了进程的部分理论后,我们如何在程序中使用多进程呢。在python中提供了一个multiprocessing模块可以帮助我们使用多进程解决问题。​ 再multiprocessing模块中有一个类Process,它是我们这次的主角,下面是对这个类的参数介绍from multiprocessing import Process'''group=None, 为日后开发新功能准备 target=None, 目标任务name=None, 进程的姓名args=(), 目标任务

2020-08-24 14:37:27 379

原创 并发编程理论

并发编程什么是进程?​ 进程:正在进行的任务,负责执行任务的就是cpu进程与程序的区别​ 程序是一个具体的概念,例如qq就是一个程序。而进程则更像是一个抽象的概念。我们找不到一个具体的事物去描述它,它更像是一种过程。例如qq在运行的过程就可以被称为一个进程并发与并行​ 先不论并发与并行的具体过程,并发与并行在表现的形式上是一致的,在用户看起来都是同时运行的。​ 但是并发其实是用一种方法使人们看起来达到了并行的效果,本质还是一个cpu处理多个任务​ 并行则是同时处理任务,需要多个cpu才能实现

2020-08-24 14:34:41 111

原创 数据库报错Incorrect string value: ‘\xE8\x80\x81\xE7\x94\xB7...‘ for column ‘post‘ at row 1

遇到这种问题多半是数据库的字符编码出现了一定的问题我们使用命令 show create table 表名 查看使用的字符编码修改字符编码语句:alter table employee default character set utf8;在使用:show create table之后再插入数据即可...

2020-08-22 14:10:08 2695

原创 利用socketsever实现的TCP/UDP并发编程

socketseversocketsever模块的本质就是利用了并发的socket模块,客户端本身是不需要并发的,我们只要让服务端支持并发即可import socketserver#基于TCP协议class MySever(socketserver.BaseRequestHandler): def handle(self): while True: print('start') msg = self.request.recv(1

2020-08-18 15:37:49 215

原创 套接字的使用以及粘包问题的解决

套接字的使用socket的工作流程套接字工作流程如上图,我们可以很清晰的理解socket的工作流程服务器端:​ 1.首先我们初始化一个socket对象​ 2.其次与socket的接口绑定​ 3.我们使用listen()方法监听,(由于我们的项目在运行的时候可能会有多个客户端项目将数据传入,因此这个方法专门用来挂起不同的客户端对象)​ 4.准备接受客户端发来的连接请求(程序会一直暂停直到有客户端连接)​ 5.接受客户端的消息​ 6.回送给客户端消息​ 7.关闭连接或重复5,6两步客户

2020-08-18 08:02:31 406

原创 网络编程的理论概念

网络编程的理论概念什么是网络​ 网络:物理链接介质+各种通讯协议c/s架构(client/sever)​ 我们生活中处处都是c/s架构,b/s架构(Browser/Server)也是c/s架构的一种,这种架构简单的说就是服务器端与客户端的交互​ 而socket就是为了完成c/s架构的开发我们所使用的一种方式。osi七层osi七层分为哪几层呢:​ 应用层:(应用层,表示层,会话层合并为一层)http、ftp、自定义协议​ 传输层:tcp或udp协议(端口port)​ 网络层:ip协议(

2020-08-18 08:00:57 119

原创 深拷贝与浅拷贝

深拷贝与浅拷贝深拷贝只得是对一个数进行完全得拷贝,类似于备份得效果,在python中我们使用copy模块进行深copyimport copya=['aa',2,3,4,[1,2]]b = copy.copy(a)#浅copyc = copy.deepcopy(a)print(id(a[4]))print(id(b[4]))print(id(c[4]))>>>19618312>>>19618312>>>19773384

2020-08-11 08:39:41 63

原创 python反射

反射​ 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力例如我以前曾使用过: if type(test) == list: #填写代码​ 上述过程也就是一个反射的过程​ 在程序运行的时候,我们若获得一个不知道有何种属性的对象,如果想操作其内部属性,我们可以先通过一个内置函数dir()来获得任意一个类的各种属性以及方法class Student: def __init__(self,name,age):

2020-08-10 10:18:40 97

原创 继承与派生与多态性

继承与派生​ 在python中,新建的类可以继承一个或多个父类(有些语言不能继承多个父类),这种类可以被称为子类或派生类,父类则可以被称为基类或超类经典类与新式类​ 在python2中有经典类与新式类之分,然而在python3中则没有这种区分,统一为新式类。新式类与经典类最大的区别就是有无继承object类,在python3中不论是否显示继承object类,默认都是继承object类的class Parent: passclass Sub(Parent): passprint(S

2020-08-10 10:17:50 408

原创 封装_绑定方法

封装​ 综上所述:面向对象共有三种方法,继承与派生,多态性,以及最后的封装。封装指的是什么?​ 封装其实就是将数据与功能的整合,以及我们可以通过封装做到将封装对象的属性以及方法进行隐藏。如何隐藏​ python中的Class通过使用双下划线的方式将属性隐藏class Test: def __init__(self,name,age): #本质是一种变形操作_self__name self.__name = name # _Test__name

2020-08-06 08:47:29 292

原创 面向对象

面向对象​ 首先,所有的程序都是由数据与功能两部分组成的。​ 因此编写程序的本质就是定义一系列的数据,然后定义一系列对应的功能对其操作​ 在我们学习面向对象之前,数据与功能是分开的# 数据:name、age、sexname='lili'age=18sex='female'# 功能:tell_infodef tell_info(name,age,sex): print('<%s:%s:%s>' %(name,age,sex))# 此时若想执行查看个人信息的功能,需

2020-08-06 08:45:31 113

原创 logging模块

logging模块这里主要讲了使用logging模块的一些方法,若想使用可以直接移动至最后,使用字典配置logger首先日志分为了六个级别:​ 0.notset:0 (不设置)​ 1.debug:10(调试)​ 2.info:20​ 3.warning:30​ 4.error:40​ 5.critical:50 (严重的)其次logging的默认级别为warning,且默认打印到终端import logging#默认为设置的话,只有warning以上的会被打印到终端,再括号中的内容会

2020-08-05 10:17:10 116

原创 random(随机数)模块

random(随机数)#random方法不多,可以用来生成验证码random.random()#生成一个0到1的随机小数random.randint()#括号中可以由你指定想生成的随机数范围,这出来的是整数且包括后面的那个数print(random.randint(1,3))#生成1-3的随机数,包括3random.randrange()#与randint一样生成整数,单数不包括后面的那个数print(random.randrange(1,3))#不包括3random.choice()

2020-08-05 10:13:58 354

原创 hashlib模块

hashlib模块hash是什么?​ hash又叫哈希,是一种算法,用于文件密码保密,该算法通过传入的值然后通过特殊的算法可以获得一个特殊的值hash的特点是什么?1.只要传入的值相同,加密得到的哈希值必定一样2.不能逆推3.只要使用相同的哈希算法,不论你传入的值有多大,hash值是固定的如何使用import hashlibm = hashlib.md5()#获得一个md5哈希的对象m.update('字符串'.encode('utf-8'))#必须传入二进制,直到hexdigest

2020-08-05 10:12:15 107

原创 python re模块

正则表达式(Regular Expression)常用符号[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfDov2Bd-1596505959640)(C:\Users\QAQ\Desktop\python学习\图片\正则表达式\常用正则.png)]正则表达式常用符号测试str = 'asd ds## $$ dsa d_'#\w匹配的是字母数字以及下划线a = re.findall('\w',str)print(a)#\W匹配的是不是字母数字和下划线的&gt

2020-08-04 09:54:16 203

原创 day15 生成器与迭代器以及面向过程的思想

迭代器​ 迭代:一次次对过程进行重复获得其中的结果,然后把该结果作为下一次运行的初始值,其中一次重复被称为一次迭代​ 例如下面的while循环,一次循环便被称为一次迭代。goods=['mac','lenovo','acer','dell','sony']index=0while index < len(goods): print(goods[index]) index+=1可迭代对象​ 个人理解:可以进行迭代操作的对象被称为可迭代对象迭代器对象​ 调用obj.i

2020-07-22 21:59:28 68

原创 day14 闭包&装饰器

闭包理解:按我个人的理解闭包就是一个内嵌函数在调用外面一个函数的变量名时被引用,那么这个内嵌函数就被称为闭包函数,简称闭包闭:代表函数是一个内嵌函数包:指的是该函数访问了一个来自于外层函数的变量为函数体传参的方式方案一:直接使用参数的形式传递方案二:把函数体想要的参数包给他闭包的用途理解:闭包主要运于在你无法动之前已经写的代码下,你想要为原函数传参,就可以使用闭包import requestsdef page(url): def get(): requests.

2020-07-21 18:32:49 93

原创 day12函数

函数函数的语法def: 定义函数的关键字;函数名:函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能;括号:括号内定义参数,参数是可有可无的,且无需指定参数的类型;冒号:括号后要加冒号,然后在下一行开始缩进编写函数体的代码;“”“文档描述”"": 描述函数功能,参数介绍等信息的文档,非必要,但是建议加上,从而增强函数的可读性;与注释功能相同函数体:由语句和表达式组成;return 值:定义函数的返回值,return是可有可无的。函数

2020-07-20 09:47:00 73

原创 day11文件处理

文件处理#1.打开文件,由程序向系统调用open()方法,由操作系统打开文件,将硬盘的一部分分配给它,最后将一个文件对象赋值给f(等于那个被打开的文件)f = open('a.txt','r',encoding='utf-8')#三个参数含义分别为1.你需要打开的文件2.读写权限3.编码类型data = f.read()#文件对象的读方法,会被操作系统转换为读的操作f.close()#向操作系统发起关闭文件的请求,回收系统资源print(data)>>>qaqwith关键字

2020-07-16 20:47:20 80

原创 day09集合与字符编码

集合集合主要作用有:去重、关系运算s = {1,2,3,4}本质s = se({1,2,3,4})t与字典相比少了键值对,并且集合它本身并不存在索引a = {} 默认是字典而不是集合a=set() 这才是集合与字典,元组,列表一样 但是集合内的值必须是不可变类型的值集合内的元素也是无序的集合的关系运算#1.合集/并集(|)代表并集,两者没有交集的部分+重复的部分会保留一个a = {1,2,3,4}b={3,4,5,6}print(a|b)>>>{1, 2, 3, 4

2020-07-14 20:47:57 77

原创 day08列表,字典等的使用方法

了解系列a='sadnesspineapple'#center()两个参数,第一个为总参数,第二个是不够时填得字符串print(a.center(30,'-'))>>>-------sadnesspineapple-------#ljust()同上,不过是填得左边。print(a.ljust(30, '-'))>>>sadnesspineapple--------------#rjust,填右边#zfill,只有一个参数,用来填宽度。若字符串长度不够

2020-07-13 22:11:58 87

原创 day07字符串的常用操作

可变类型与不可变类型可变数据类型:值发生改变时,id不变,证明只是改变了原值—》id与值不绑定,可以任意的修改值不可变类型:值发生改变时,id发生改变 ,证明是产生了新的值 —》id与值绑定,id变化的同时代表变量绑定了一个新的对象,与原对象无关ps:即改变值得同时id也变化得则是不可变数据类型,改变值的时候id不变的则是可变数据类型数据类型可变/不可变整型不可变字符串不可变元组不可变列表可变集合可变字典可变基本数据类型及内置方法

2020-07-10 18:47:59 114

空空如也

空空如也

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

TA关注的人

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