- 博客(80)
- 收藏
- 关注
原创 jQuery基础
文章目录一、加载jQuery的方法二、基本语法三、选择器四、操作DOM对象4.1 内容操作4.2 属性操作4.3 添加操作4.4 删除操作五、操作CSS对象5.1 添加类5.2 css方法5.3 位置相关方法5.4 尺寸六、事件基本语法常用动作六、each和data方法eachdatajQuery 是一个 JavaScript 库。jQuery 极大地简化了 JavaScript 编程一、加载jQuery的方法网页CDN直接加载<head><script src="http
2021-01-12 18:01:02 318
原创 javascript入门(二)- DOM
文章目录一、什么是DOM二、通过DOM操控HTML2.1 改变 HTML 输出流2.2 查找 HTML 元素2.3 改变HTML 内容2.4 改变 HTML 属性2.5 创建新的 HTML 元素 (节点)2.6 移除已存在的元素2.7 替换元素2.8 元素导航2.9 HTML DOM 集合(Collection)三、操控CSS元素四、DOM事件一、什么是DOM当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),简称为DOM通过可编程的对象模型,JavaScri
2021-01-09 14:41:22 266
原创 CSS基础
文章目录一、HTML文件引入CSS样式的三种方法二、CSS语句基本格式2.1 基本语法2.2 选择器2.2.1 基本选择器2.2.2 通用选择器2.2.3 组合选择器2.2.4 属性选择器一、HTML文件引入CSS样式的三种方法在标签项中直接引用,style=“样式1;样式2“在head标签中通过style标签进行定义在link标签中倒入css文件<link rel="stylesheet" href="文件路径">二、CSS语句基本格式2.1 基本语法选择器 { 属性:值
2021-01-08 16:56:28 232
原创 HTML基础
文章目录一、基础模版二、元素2.1 基础格式2.2 属性三、常用元素3.1 HTML 标题3.2 段落和HTML 水平线3.3 HTML超链接target 属性id 属性3.4 表格表格表头、页眉、主体3.5 列表有序列表无序列表3.6 区块divspan3.7 表单文本域密码字段单选按钮(Radio Buttons)复选框(Checkboxes)下拉框提交按钮(Submit Button)3.8 脚本script一、基础模版<!DOCTYPE html> <!-- 声明为 HTML5
2021-01-08 11:41:40 466
原创 python编程-Django(一)
一、Django程序目录文件manage.py:这是控制文件,可以控制站点的启动和停止setttings.py:Django的配置文件urls.py:保存着web站点的路由路径和函数对应关系wsgi.py:决定web站点使用哪种类型的sockettemplates:html文件存放的文件夹二、路径映射路径映射的函数配置是卸载urls.py文件中的from django.contrib import adminfrom django.urls import pathfrom djang
2020-12-31 17:55:41 135
原创 python编程-ORM框架
文章目录一、什么是ORM二、sql2.1 概念和数据类型2.2 创建连接2.3 操作表2.4 操作行数据2.4.1 增加数据插入单行数据插入多行数据2.4.2 查询数据查询条件查询2.4.3 删除数据2.4.4 修改数据一、什么是ORM摘自百度百科:ORM一般指对象关系映射。对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)这段话可能抽象,不好理解,其实就是把面向对象编程和关系型数据库的一种映射关系的模型。这样我们通过操作编程对
2020-12-14 22:43:09 633
原创 python编程-数据库pymysql
文章目录数据库连接基础操作查询增加pymysql是python直接和mysql进行交互的模块数据库连接首先建立一个数据库test和一张测试表userinfoCREATE TABLE userinfo( id INT AUTO_INCREMENT PRIMARY KEY , username CHAR(10) UNIQUE , password CHAR(20))engine innodb DEFAULT CHARSET utf8import pymysqlconn = pymy
2020-12-12 13:57:31 111
原创 javascript入门(一)- 基本语法、函数、对象
文章目录一、在html之中引入js文件二、基础语法2.1 注释2.2 变量2.2.1 字符串类型字符串常用方法2.2.2 数组创建数组的三个方式常用方法排序2.3 流程控制2.2.1 if语句2.2.2 switch 语句2.2.2 for 循环2.2.3 while语句三、 函数3.1 创建函数3.2 函数参数遍历3.3 词法分析一、在html之中引入js文件<script src="xx.js"></script>二、基础语法2.1 注释单行注释// 我是注释
2020-12-01 23:11:12 125
原创 python编程-IO模型
文章目录阻塞IO非阻塞IO非阻塞的TCP传输IO多路复用select机制poll机制epoll机制selector模块异步IO阻塞IO我们用一副图来描述阻塞IO的过程阻塞IO会阻塞两段时间:等待数据准备好复制数据到进程中非阻塞IO和阻塞IO不同的是,在系统内核还未准备好数据的时候,应用程序会往下执行,但程序每隔一段时间,会不断向内核发起系统调用询问数据的准备情况,效率仍然不高。直到有一次数据准备好之后,就会进行数据的复制操作将数据提交给应用程序进行使用非阻塞的TCP传输impor
2020-11-26 17:14:58 155
原创 python-多线程编程(五)- 队列的其他方法、线程池
文章目录队列栈优先级队列线程池基本方法简单例子回调函数队列线程的队列使用方法和进程中介绍的大致是相同的,这里再介绍几个队列类我们使用queue模块import queue栈LifoQueue类会生成一个栈类型的队列,其中的数据是先进后出的import queueq = queue.LifoQueue()for i in range(10): q.put(i)print(q.get())-------------------9优先级队列PriorityQueue,
2020-11-24 14:14:42 149
原创 python-多线程编程(四)- 条件、定时器
条件这是线程中不太常用的一个模块,主要也是起到一个类似于事件的功能,可以理解为它是一个复数的事件,可以控制代码运行的次数我们用一个例子来讲述条件模块from threading import Thread,Conditionfrom time import sleepdef loop1(con,i): con.acquire() con.wait() #当条件没有通知执行的时候,就会在这句进行堵塞 print("这是第%d次执行"%i) con.release()
2020-11-24 11:32:55 135
原创 python-多线程编程(三)- 事件、信号量
信号量线程信号量的使用方法和进程是一致的,决定了同一时间能运行的代码的的数量from threading import Semaphore,Threadfrom time import sleepdef func1(sem,i): sem.acquire() sleep(1) print("线程信号量") n = i + 3 print(n) sem.release()if __name__ == '__main__': sem =
2020-11-24 10:57:10 237
原创 python-多线程编程(二)- 守护线程、线程锁
一、守护线程守护线程的使用方法和守护进程类似,也是deamon=True的方式来启动一个守护线程,但是具体的执行结果和守护进程略有不同。from threading import Threadfrom time import sleepdef func1(): while True: print("$$$$$") sleep(2)def func2(): sleep(6) print("子线程运行结束")t1 = Thread(t
2020-11-23 23:04:20 161
原创 python-多线程编程(一)基础使用以及全局解释器锁
文章目录一、多线程模块基础使用启动线程其他方法二、全局解释器锁GIL三、多线程实现socket一、多线程模块基础使用启动线程使用方法一:from threading import Threaddef func1(i): print("我是线程%d"%i)if __name__ == '__main__': for i in range(10): t = Thread(target=func1,args=(i,)) t.start()使用方法
2020-11-23 18:14:50 154
原创 python-多进程编程(七)-- 回调函数
回调函数的定义非常简单,就是当一个子进程结束之后,它会将返回值作为一参数返回给主进程中指定的函数并执行这个函数。from multiprocessing import Pooldef func1(i): print("in func1") return i*idef func2(n): print("in func2") print(n)if __name__ == '__main__': pool = Pool(5) pool.apply_a
2020-11-20 10:05:55 537
原创 python-多进程编程(六)-- 进程池
文章目录使用进程池的原因进程池的基础使用同步执行任务异步执行任务使用进程池的原因由于每一次开启进程,需要系统为其开辟属于这个进程的内存空间以及一系列寄存器、堆栈、文件的分配,关闭一个进程的时候也有一系列回收的操作。因此每一次使用多进程批量执行任务,是很消耗系统资源,并且降低效率的。因此就有了进程池的概念,系统会预先创建一定数量的进程,每当有任务来的时候,就会使用已经创建的进程来运行任务代码,任务结束之后也不会释放,因此大大减少了进程创建和回收的时候的资源损耗,提高了代码运行的效率进程池的基础使用
2020-11-20 09:53:54 129
原创 python-多进程编程(五)-- 管道
管道也是一种进程间互相通信的方法,它和队列相比,它是队列的底层实现方法,因此在平常的应用中也比队列更加少见,但是理解它对进程间的通信有很大的帮助简单例子from multiprocessing import Pipeconn1,conn2 = Pipe()conn1.send('123456')print(conn2.recv())其实管道的基本使用非常简单,就是一个管道的类实例化之后会生成两个实例对象,就类似于管道的两个端点,从一头发出的消息会被另一端接收到。可以看到和tcp传递消息很相
2020-11-19 17:29:33 970 1
原创 python-多进程编程(三)-- 事件event
事件Event是用于堵塞进程执行的一个用途,可以让进程之间做到同时堵塞同时进行,类似于一种断点的效果,常用于一种信号状态的传递Event类的基础用法e = Event() #创建一个event对象e.is_set() #展示当前event的状态,一个对象刚被创建是,状态都为False即阻塞状态e.wait() #wait方法会根据当前的对象状态来控制程序是否阻塞e.set() #将当前的事件状态改为Truee.clear() #将当前的事件状态改为False下面我们展示一个简单
2020-11-18 17:49:05 726
原创 python-多进程编程(二)-- 进程锁、信号量
我们有时候会遇到这样的情况,当有100个线程同时去操作一个文件或者修改一个数据的时候,会发生什么呢?我们来看一下下面的例子from time import sleepfrom threading import Threadclass Account(object): def __init__(self): self._balance = 0 def deposit(self, money): # 计算存款后的余额 new_bal
2020-11-17 17:33:57 822 2
原创 python常用模块-subprocess
运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信su
2020-08-08 16:07:38 276
转载 python常用模块-Pexpect
文章目录基本使用流程基本方法spawnexpectsendsendlinesendcontrol特殊变量pexpect.EOFpexpect.TIMEOUTExpect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况。因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现pexpect 是 Python 语言的类 Expect 实现。从我的角度来看,它在功能上与 TCL 语言的实现还是有一些差距,比如没有buffer_full 事件、比
2020-08-08 14:37:03 203
原创 jenkins-pipeline
文章目录一、Jenkins Pipeline介绍为什么要使用Pipeline二、pipeline语法种类1、申明式2、脚本式三、申明式语法核心结构pipielineagentstagesstagestepspost指令environmentoptionsparameterstriggerstoolsinputwhen脚本一、Jenkins Pipeline介绍1.Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。2.持续交付管道(CD Pipeline)是将
2020-05-15 19:20:59 370
原创 python爬虫常用模块-xpath以及lxml
一、模块介绍以及安装xpath是一个html元素选择器,这个模块是存在lxml库中,安装lxml库后就可以直接使用xpathpip install lxml 二、Xpath术语节点在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点<?xml version="1....
2020-05-06 19:35:03 929
原创 python爬虫主要模块-requests
reuqestsrequests是使用Apache2 licensed 许可证的HTTP库。可使用其发起http请求,比urllib2模块更简洁。一、Get请求r = requests.get(url,headers=headers,cookies=cookie)传递参数你也许经常想为 URL 的查询字符串(query string) 传递某种数据。如果你是手工构建 URL,那么数据...
2020-04-30 19:00:32 206
原创 python爬虫流程和主要注意事项
爬虫的主要工作流程设定抓取目标(种子页面/起始页面)并获取网页当服务器无法访问时,按照指定的重试次数尝试重新下载页面在需要的时候设置用户代理或隐藏真实IP,否则可能无法访问页面对获取的页面进行必要的解码操作然后抓取出需要的信息在获取的页面中通过某种方式(如正则表达式)抽取出页面中的链接信息对链接进行进一步的处理(获取页面并重复上面的动作)将有用的信息进行持久化以备后续的处理爬虫...
2020-04-13 17:25:02 903
原创 python-多进程编程(一)
进程和线程进程的定义进程的定义有很多,普遍的定义是进程是一个程序在一个数据集上动态执行的过程。进程一般由程序,数据集和进程控制三部分组成。程序是指各种指令的集合,表述这我们需要计算机需要执行的动作。数据集则是在程序执行的过程中用到的数据和...
2020-01-16 17:16:41 164
原创 python-socket编程(四)多线程
我们之前例子都是一个服务端同时只能接受一个客户端的请求,而我们实际的情况是,一个服务端可能要应对上百上千个客户端的请求。而这样的需求就只能通过多进程或者多线程的方法来进行实现,多线程和多进程具体是怎么实现,我们先不做深入探究,先看一个简单的多线程的实例。实现代码服务端import socketserverclass MyServer(socketserver.BaseRequestH...
2019-12-26 19:59:24 905
原创 python-socket编程(三)粘包
在看粘包之前我们先看一个实例这个实例是在客户端输入指令在服务端执行并返回执行结果其中subprocess就是将命令交予系统进行运行的模块代码服务端import socketimport subprocessip_port=('127.0.0.1',8001)backlog=5buffersize=1024tcp_server = socket.socket(socket...
2019-12-25 16:45:29 166
原创 python-socket编程(一)原理篇
文章目录一、什么是socket(套接字)1.1 套接字的概述1.2 套接字的工作流程二、tcp/ip协议2.1 报文结构2.2 基础术语2.3 三次挥手2.3 四次挥手面试常见问题一、什么是socket(套接字)1.1 套接字的概述Socket是应用层和网络层的中间软件抽象层,它是一组接口,由ip和端口组成。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在S...
2019-11-26 20:08:53 562
原创 python基础之异常捕捉
文章目录一、异常的概述1、概述2、异常的种类二、异常捕捉语法1、try...except2、try...except...else3、finally4、自定义抛出异常4.1、在程序某处主动抛出异常4.2、自定义异常5、断言 assert一、异常的概述1、概述在python中有两类错误会引发异常,一类是语法错误比如异常的锁进,异常的函数名称等;还有一类就是逻辑错误,比如1/0,0由于0是无法当...
2019-11-13 20:02:40 192
原创 python类之元类
文章目录元类一、概述1、常用产生类的方法2、使用type方法来产生一个类元类方法的实现原理元类一、概述python最重要的哲学概念是一切皆对象。我们知道产生实例对象的是类对象,那类对象又是由谁来产生的呢?类对象就是由元类对象产生的,python3中元类方法就是typetype类需要传入三个参数:类名,继承的类的元祖列表,类的方法字典1、常用产生类的方法class Foo: def _...
2019-11-11 20:06:06 97
原创 python类之描述符方法
描述符方法一般来说,描述符是带有“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了.这些方法是__get__(),set(),和__delete__().其中instance的参数表示实例化的对象,owner代表描述符必须定义在类属性中,而不能定义在构造函数中。注意,只有在新式类中描述符才会起作用(新式类继承type或者object class),python3中创建的类均...
2019-11-05 19:19:07 561
原创 python类的常用内置方法
文章目录一、isinstance和issubclass二、__getattribute__三、__setitem__,__getitem__,__delitem__一、isinstance和issubclassisinstance(obj,cls)判断某一个实例是否属于某一个类,若属于返回True,否则返回Falseisinstance(sub,super)判断某一个子类是否属于...
2019-11-01 18:30:08 376
原创 python类-反射
文章目录一、反射的概念二、python中反射的四个函数三、反射的实际应用一、反射的概念反射是指程序可以访问、检测和修改它本身状态或者行为的一种能力(自省)二、python中反射的四个函数hasattr(object,name)可以检查一个对象之中是否有该属性,若存在返回True,不存在则返回Falsegetattr(object,name,default=None)可以获得一个对象...
2019-10-30 16:58:48 388
转载 redis主从、哨兵、集群的区别
一、主从通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此, Red...
2019-05-21 15:38:22 19231 7
原创 python类之多态以及封装 展开
多态类的继承有两层含义:1、改变 2、扩展多态就是类的两层意义的一个具体的实现机制,即调用不同类的实例对象下的相同方法,会可能有不一样的实现过程python中的标准类是多态一个很典型的实现。class Car: tyre_count = 4 def __init__(self,length,weight,brand): self.length = leng...
2019-05-14 15:13:04 182
原创 gitbook的搭建
gitbook的作用GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML、PDF、eBook 等格式的电子书。GitBook 可以理解为文档格式转换工具。所以GitBook并不是编辑工具,MarkDown编辑工具可以使用GitBook Editor(整合了git和markdown编辑器)linux搭建gitb...
2019-05-10 20:11:30 543
原创 python类之继承 展开
文章目录继承概述实现继承简单的继承方法重写接口继承继承概述面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”,继承的过程,就是从一般到特殊的过程。在某些 OOP 语言中,一个子类可以继承多个基类。但...
2019-04-30 13:57:15 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人