摘要:
对象关系映射模型是通过面向对象的方式来操作数据库,这就需要对应的关系映射,数据中可以分为库,表,字段信息,一条条数据,而需要用面向对象的关系去对应。于是就有了下面对应关系。 数据库 -- 面向对象模型 表 <--> 类 字段 <--> 类属性 记录 <--> 每个实例 Django中的关系映射 使用 阅读全文
posted @ 2020-06-09 22:45
没有想象力
阅读(804)
评论(0)
推荐(0)
摘要:
python中的mysql驱动(库) python中封装了与mysql服务之间的通讯接口,从而实现在Python程序中简单方法调用就可以实现数据库操作。 连接数据库进行操作需要支持数据库和网络传输的大量协议,直接使用socket连接数据库并进行通信是相当复杂的,所以Python提供了访问数据库的接口 阅读全文
posted @ 2020-06-09 21:19
没有想象力
阅读(710)
评论(0)
推荐(0)
摘要:
不同源 同源:访问的两个url使用相同协议,相同的域,以及相同的端口才是同源,否则不能算作同源。在访问一个源时,在该源中夹杂了访问另一个源的请求时候,这就是一个跨域的请求。这样的请求会带来风险。浏览器端后根据源的不同的进行数据的隔离,一个域不能获取到其他域中保存的数据 。服务器端为了保证接受的数据是 阅读全文
posted @ 2020-06-09 21:11
没有想象力
阅读(320)
评论(0)
推荐(0)
摘要:
跨域请求CORS 当我们在一个页面中使用Ajax发送异步请求时,该请求访问的域不在当前域下,浏览器将会对其进行限制,只有ajax请求访问的服务端告诉浏览器该请求的数据可以被该域使用,该ajax访问才能正确的得到数据。 CORS是一个W3C标准,全称是"跨域资源共享,它允许浏览器异步向跨源服务器发出X 阅读全文
posted @ 2020-06-09 21:07
没有想象力
阅读(701)
评论(0)
推荐(0)
摘要:
jQuery jquery功能 HTML元素选取和操作,通过选择器,操作dom树中的各个元素。 css和各种属性:可以获取或者修改获取到的元素的标签的属性值。 HTML DOM遍历和修改: 事件函数:为标签设置各种事件函数 事件对象:当一个事件触发时候,获取一个事件对象,他存在许多的属性值。 jav 阅读全文
posted @ 2020-06-09 21:00
没有想象力
阅读(195)
评论(0)
推荐(0)
摘要:
集群目标保证 Redis 集群是 Redis 的一个分布式实现,在设计中就需要考虑其服务可用性,稳定性,性能,安全等问题,这也是redis集群需要尽量实现的目标,官网中有以下几点说明。 可扩展性:能够在1000节点时候仍然能够很好的进行扩展且是线性的 无合并操作:合并操作涉及多个键值,而这些键可能处 阅读全文
posted @ 2020-06-09 20:50
没有想象力
阅读(339)
评论(0)
推荐(0)
摘要:
mongodb服务 参考MongoDB中文网 mongodb是一个高效的文档型的Nosql数据库,文档数据内部使用类似于json格式的bson的数据格式,也就是二进制形式json格式。 mongodb服务 centos7下安装 下载MongoDB源码或者使用yum安装,可以到阿里云官网镜像下载该服务 阅读全文
posted @ 2020-06-09 20:48
没有想象力
阅读(447)
评论(0)
推荐(0)
摘要:
redis主从复制 从服务(slave)从主服务(Master)同步更新数据,保持主从数据同步。 主服务提供读写服务,从服务只能提供读服务。 一个主服务可以有多个从服务。 建立主从关系 可以使用三种方式: 开启服务时指定该服务从属于其他redis服务。 redis-server --salveof 阅读全文
posted @ 2020-06-09 20:25
没有想象力
阅读(170)
评论(0)
推荐(0)
摘要:
官网介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,包括: 字符串(strings) 散列(hashes) 列表(lists) 集合(sets) 有序集合(sorted sets) 范围查询, bitmaps:位 阅读全文
posted @ 2020-06-09 20:13
没有想象力
阅读(388)
评论(0)
推荐(0)
摘要:
动态网页抓取问题 某些网站采用动态网页技术,页面中的数据通过执行js向dom树中动态增加元素,这样的网页我们无法直接从网页源代码中获取数据,因为这是客户端(浏览器)执行js后动态添加的 无头浏览器 一个无界面的浏览器,可以执行与其他浏览器同样的操作,接受网页数据并渲染,执行js文件,动态的生成dom 阅读全文
posted @ 2020-06-09 18:55
没有想象力
阅读(428)
评论(0)
推荐(0)
摘要:
XPath 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历,快速提取xml文档中的的信息,详细的xpath教程参见:https://www.w3school.com.cn/xpath/index.asp。 xpath用法 //任意层次下,/ 根或下一层 //@i 阅读全文
posted @ 2020-06-09 18:47
没有想象力
阅读(2788)
评论(0)
推荐(0)
摘要:
scrapy-redis模块 scrapy-redis是为了实现scrapy的分布式爬取而提供了一个python库,通过更换scrapy的内置组件,将爬取请求队列和item数据放入第三方的redis数据库中,由此可以有多个scrapy进程从redis中读取request数据和写入items数据,实现 阅读全文
posted @ 2020-06-09 18:33
没有想象力
阅读(1310)
评论(0)
推荐(0)
摘要:
scrapy 流程图 Scrap Engine(引擎) 负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件,是整个爬虫的调度中心。 调度器( Scheduler) 调度器接收从引擎发送过来的 request,并将他们加入到爬取队列,以便之后引擎请求他们时提供给引擎。初始的爬取URL和后 阅读全文
posted @ 2020-06-09 18:25
没有想象力
阅读(3149)
评论(0)
推荐(1)
摘要:
urllib包 urllib是python3中的一个标准库,它是一个工具包模块,使用该模块我们可以模仿浏览器向服务器发送请求,并获得返回结果数据进行处理。 urllib包分级简单,在该包下5个模块 urllib.request :用于打开和读写url urllib.response:将获取后的内容进 阅读全文
posted @ 2020-06-09 17:38
没有想象力
阅读(525)
评论(0)
推荐(0)
摘要:
Innodb引擎的锁机制 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁 事务的ACID 事务是为了实现业务上完整性而实现了,他可以由多条sql语句组成,这些语句要么全部成功,否则发生任何错误都将会回滚。事务具有4个属性。称为事务的ACID属性 阅读全文
posted @ 2020-06-09 17:13
没有想象力
阅读(281)
评论(0)
推荐(0)
摘要:
页 从磁盘读取或者写入数据时,我们通常会指定一个缓冲区大小,达到缓冲区域大小才会写入一次数据,较少IO操作次数。同样的从磁盘读取数据时候,就操作系统而言,读取一条较小的数据时,并不是只会返回我们需要的数据,而是会将这个数据前后的部分数据一并读取到内存中,以备之后使用。这个从磁盘读取的最小量的数据被称 阅读全文
posted @ 2020-06-09 16:43
没有想象力
阅读(1306)
评论(0)
推荐(0)
摘要:
数据库 数据库是按照数据结构来组织,储存,管理数据的仓库。数据库在物理层上有效的利用系统对磁盘的块读取特性,在读取相同磁盘块的同时,尽可能多的加载索引数据,来提高索引命中效率,从而达到减少磁盘IO的读取次数 传统的记录数据的方式使用普通文件的记录,但是这种储存的方式在进行数据 查询时极其不方便,不能 阅读全文
posted @ 2020-06-09 16:11
没有想象力
阅读(304)
评论(0)
推荐(0)
摘要:
官方提供了socketserver包去方便我们快速的搭建一个服务器框架。 server类 socketserver包提供5个Server类,这些单独使用这些Server类都只能完成同步的操作,他是一个单线程的,不能同时处理各个客户端的请求,只能按照顺序依次处理。 + + | BaseServer | 阅读全文
posted @ 2020-06-09 11:41
没有想象力
阅读(2333)
评论(0)
推荐(0)
摘要:
socket socket 通常被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 Python标准库提供了socket模块来实现这种网络通信。实例化一个socket类便能得到一个socket对象 阅读全文
posted @ 2020-06-09 11:17
没有想象力
阅读(1736)
评论(0)
推荐(0)
摘要:
IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们的消息。 使用IO多路复用的优点在于进程在单线程的情况下同样可以同时处理多个IO阻塞。与传统的多线程 阅读全文
posted @ 2020-06-09 11:03
没有想象力
阅读(436)
评论(0)
推荐(0)
摘要:
TCP是一种可靠的,发送和接收方双方面向连接的数据传输控制协议。保证了数据传输的可靠性是可控的。避免在传送过程中发生丢包后接收方数据缺失。实现了这种可靠性的方式是:发送方将每一个数据包按序编号进行发送,接收方在每收到一个包,便向发送方发送对应的确认接收的ack应答包,发送包通过接收该ack应答来确定 阅读全文
posted @ 2020-06-09 10:50
没有想象力
阅读(237)
评论(0)
推荐(0)
摘要:
OSI参考模型 OSI:开放式系统互联参考模型。该模型定义了不同计算机互联标准,是设计和描述计算机网络通信的基本框架。OSI模型将网络通信的工作分为七层 物理层:解决电信号的传输问题,定义电器规范,设备规范,物理接口等,研究对象为比特位,为两端设备提供原始比特流的传输通路。设备:集线器,网线,HUB 阅读全文
posted @ 2020-06-09 10:36
没有想象力
阅读(502)
评论(0)
推荐(0)
摘要:
concurrent.futures模块 由于频繁的创建线程或者进程是一件较为繁琐的操作,且浪费时间和资源。于是Python提供了线程池和进程池的模块。我们只需要将要执行的任务提交给池对象,池会自动创建线程或是进程对象异步执行这些任务,最后拿到返回结果。这些池中的进程和线程创建后不会立即自动销毁,而 阅读全文
posted @ 2020-06-09 10:01
没有想象力
阅读(333)
评论(0)
推荐(0)
摘要:
GIL全局解释器锁 GIL即python全局解释器锁,这是一个存在于解释器进程中的锁,该锁的存在造成了即使是多核cpu,在同一个python进程中,只会有一个线程被调度。如果想同时使用多核的优势,就需要使用多个进程来全面利用cpu。 IO密集型和计算密集型 IO密集型 IO密集型是指程序中有大量的I 阅读全文
posted @ 2020-06-09 09:48
没有想象力
阅读(2442)
评论(0)
推荐(1)
摘要:
Event Event事件,实现简单的线程间的通信机制。内部使用一个flag标记,通过flag标记标记True或者False来判断是否达到了满足的条件,从而选择不同的操作。 import threading event = threading.Event() # 创建一个event对象 # do s 阅读全文
posted @ 2020-06-09 09:31
没有想象力
阅读(941)
评论(0)
推荐(0)
摘要:
当我们完成一个完整的项目,需要该项目文件中打包成分发包共享给他人或者上传到pypi社区以供他人下载。这就需要对该项目进行打包分发。 项目文件 这是一个已写好的项目文件包,叫做my_pkg,它的目录结构如下: tutorial/ my_pkg/ __init__.py main.py utils/ _ 阅读全文
posted @ 2020-06-09 09:14
没有想象力
阅读(2221)
评论(0)
推荐(0)
摘要:
module类型 在Python中,使用import关键字导入一个包或者模块,模块是一个名为module的类型,只有模块类型才可以直接使用import导入。首先是导包过程。 print('导入前:', dir()) # 导包前全局变量 import os print('导入后:', dir()) # 阅读全文
posted @ 2020-06-09 09:03
没有想象力
阅读(388)
评论(0)
推荐(0)
摘要:
从线程理解协程 一个cpu想要同时实现多任务的执行,需要操作系统调度cpu去执行多个线程,每个线程执行不同的单个任务,从而实现多任务的执行。线程是操作系统的资源之一,创建或者销毁线程都由操作系统执行,每个线程都由自己独立的资源,例如临时变量的数据,函数调用的堆栈信息,或者当前线程执行的当前位置,发生 阅读全文
posted @ 2020-06-09 01:38
没有想象力
阅读(230)
评论(0)
推荐(0)
摘要:
序列化 程序在内存中运行时候,使用了一些复杂的数据结构,这些数据结构并不是线性的,但我们在储存数据或传输数据时,必须将这些数据按照先后顺序进行发送或者储存。这就需要将内存中的复杂的数据结构就行序列化处理。 当然我们还可以忽略这些数据结构,直接将内存从起始地址到终止地址数据按字节逐一发送或者储存,下次 阅读全文
posted @ 2020-06-09 01:28
没有想象力
阅读(379)
评论(0)
推荐(0)
摘要:
描述器 描述器由一个类对象定义,实现了__get__方法,__set__, __delete__三种方法中一个或多个的类对象叫做描述器类对象,这个类对象的实例才是一个描述器。 描述器对象能够方便的实现了两个类及其实例的交互作用,将其中的一个类操作自己属性的行为转而映射到另一个类的一个方法上,实现更多 阅读全文
posted @ 2020-06-09 01:15
没有想象力
阅读(119)
评论(0)
推荐(0)
摘要:
反射 在程序运行时候,动态的给一个对象添加属性。区别于编译时就已经确定好的状态,反射是在程序运行时动态的获取类型定义信息。在python中反射体现为我们可以使用一个字符串去获取这个对象的属性,或者给对象动态的添一个属性,这个字符串可能是临时生成的,没人知道他会是什么,只有程序运行时候才会进行添加。这 阅读全文
posted @ 2020-06-09 01:09
没有想象力
阅读(246)
评论(0)
推荐(0)

浙公网安备 33010602011771号