08 2017 档案
JavaScript绑定事件的方法[3种]
摘要:要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定"事件处理函数"。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。在JavaScript中,有三种常用的绑定事件的方法: 一. 在DOM元素中直接绑定 一. 在DOM元素中直接绑定这里的DOM元素,可以 阅读全文
posted @ 2017-08-31 12:09 momo8238 阅读(896) 评论(0) 推荐(0)
html dom与javascript的关系 -我们用JavaScript对网页(HTML)进行的所有操作都是通过DOM进行的
摘要:一,什么是DOM (参考源http://www.cnblogs.com/chaogex/p/3959723.html) DOM是什么 DOM全称为The Document Object Model,应该理解为是一个规范,定义了HTML和XML文档的逻辑结构和文档操作的编程接口。 文档逻辑结构 DOM 阅读全文
posted @ 2017-08-31 08:48 momo8238 阅读(1784) 评论(0) 推荐(0)
HTML、 CSS、 JavaScript三者的关系 1
摘要:HTML、 CSS、 JavaScript三者的关系 网页主要由三部分组成: 结构( Structure) 、 表现( Presentation) 和行为( Behavior) HTML —— 结构, 决定网页的结构和内容( “是什么”) CSS —— 表现( 样式) , 设定网页的表现样式( “什 阅读全文
posted @ 2017-08-30 10:56 momo8238 阅读(2012) 评论(0) 推荐(0)
JavaScript词法分析解析
摘要:函数在调用之前,会进行词法分析或者叫语法分析: 1. 函数在形成调用的那一瞬间,会有一个活动对象叫 active object ,简称AO,会分析如下几条: 形式参数 函数内局部变量声明 函数声明表达式 如下面的实例: 词法分析阶段 1.形式参数age. 会赋给AO对象, AO.age=undefi 阅读全文
posted @ 2017-08-30 10:45 momo8238 阅读(709) 评论(0) 推荐(0)
Dom事件的三种绑定方式
摘要:1.事件 2. onclick, onblur, onfocus, 需求:请写出一个行为,样式,结构,相分离的页面。 JS, CSS, HTML, 示例1,行为结构样式粘到一起的页面: 如下为dom 0 的操作,是初级程序员的写法:(CSS剥离出来了,不过HTML和JS还是粘在一起的) 高级写法是把 阅读全文
posted @ 2017-08-29 17:36 momo8238 阅读(882) 评论(0) 推荐(0)
Dom样式操作-属性操作
摘要:1. 对样式进行操作: 1) 以样式(C1,C2等)为最小单位进行修改。 className, classList, (以列表形式获得) classList.add("C2"), classList.remove("C1") 2) 以某个样式作为单位进行修改。(可以只修改颜色/字体/背景等,可以只修 阅读全文
posted @ 2017-08-29 15:03 momo8238 阅读(335) 评论(0) 推荐(0)
Dom选择器以及内容文本操作
摘要:1. DOM:文档对象模型。把整个HTML当做大的对象。每一个标签认为是一个对象。(每一个个体就是一个对象) 2. 查找: 直接查找 var obj=document.getElementById("i1") 间接查找 (1)文本内容操作 innerText; 获取文本内容,会把HTML标签自动过滤 阅读全文
posted @ 2017-08-29 13:52 momo8238 阅读(937) 评论(0) 推荐(0)
JS作用域-面向对象
摘要:1. 其它语言是以代码块作为作用域的。下面程序会报错(如C,C++中),因为局部变量name只在{ }代码块中生效。打印console.writeline(name)中的name时就会报错。 修改如下,才能正常运行: 2.Python:冒号+缩进作为一个代码块。在其它语言中是以代码块作为作用域的,在 阅读全文
posted @ 2017-08-28 22:31 momo8238 阅读(198) 评论(0) 推荐(0)
eval以及时间操作
摘要:1. 在Python里面 val=eval(“1+1”) 只能执行简单的表达式,不能执行有逻辑性的代码。并且能拿到返回值。可以执行字符串的计算; exec() 执行代码; 在JS里面:eval可以实现上述两种功能,相当于上面两个函数的合集。 2. 时间:通过new,类后面加个括号表示创建了一个对象。 阅读全文
posted @ 2017-08-28 21:51 momo8238 阅读(433) 评论(0) 推荐(0)
JavaScript-序列化及转义
摘要:1. for循环; while循环; 2. 条件语句: 类似于if else的功能。 name='1'; switch(name){ case:'1': console.log(123); break; case:'2': console.log(123) break; default: conso 阅读全文
posted @ 2017-08-28 16:17 momo8238 阅读(656) 评论(0) 推荐(0)
后台管理页面2
摘要:1,图标的网站 http://fontawesome.io/icons/ 2,下载图标的网站:http://fontawesome.io/ 拷贝到自己的程序的目录下面。 3. 这个是压缩版的font-awesome.min.css 这个是非压缩版的font-awesome.css 两个里面的内容其实 阅读全文
posted @ 2017-08-28 15:34 momo8238 阅读(185) 评论(0) 推荐(0)
后台管理页面1
摘要:1. html:标签 2.CSS: position background text-align margin padding font-size z-index overflow hover opacity float(clear:both) line-height border color di 阅读全文
posted @ 2017-08-28 10:16 momo8238 阅读(298) 评论(0) 推荐(0)
img 和 background-image 优劣比较
摘要:一. 简单来说,img是内容部分的东西,css的background-image是修饰性的东西。 img 从页面元素来说,如果是页面中的图片是作为内容出现的,比如广告图片,比如产品图片,那么这个必然是用img了,因为这个是页面元素内容。页面元素内容最关键的一点就是,当页面没有样式的时候,还是能一眼看 阅读全文
posted @ 2017-08-26 14:47 momo8238 阅读(8354) 评论(1) 推荐(2)
CSS中position属性( absolute | relative | static | fixed )详解
摘要:参考源:http://blog.csdn.net/chen_zw/article/details/8741365 我们先来看看CSS3 Api中对position属性的相关定义: Static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。 Relati 阅读全文
posted @ 2017-08-25 14:23 momo8238 阅读(333) 评论(0) 推荐(0)
后台管理左侧菜单
摘要:看代码吧: 运行结果:点谁谁就展开 可以借助于 this 完成相同的功能。 阅读全文
posted @ 2017-08-25 12:31 momo8238 阅读(1482) 评论(0) 推荐(0)
全选-反选-取消
摘要:1. .checked=false/true: 作用是给方形框勾上或者取消。 checkbox.checked=true; 表示勾选上了。 代码如下: 运行结果:实现了全选,取消,反选等多项功能。 阅读全文
posted @ 2017-08-25 11:43 momo8238 阅读(383) 评论(0) 推荐(0)
Dom-直接 /间接选择器
摘要:Dom:Document Object Model的缩写, 把html转换成了文本对象. 1. 直接选择器 1. 找到标签 document.getElementById('i1') 获取单个元素,因为ID是不可能重复的,所以只能找到一个元素。 document.getElementsByTagNa 阅读全文
posted @ 2017-08-25 11:07 momo8238 阅读(267) 评论(0) 推荐(0)
Javascript-基础2
摘要:1. Javascript 字符串里面的方法: 示例: 2. 布尔类型(Boolean) 布尔类型仅包含真假,与Python不同的是其首字母小写。true, false == 比较值相等 != 不等于 比较值和类型相等 ! 不等于 || 或 && 且 3. 数组 JavaScript中的数组类似于P 阅读全文
posted @ 2017-08-24 21:49 momo8238 阅读(175) 评论(0) 推荐(0)
Javascript-基础1
摘要:1,变量: name="alex" #默认是全局变量 var name="eric" #局部变量 2. 写JS代码: html中写, 临时文件可以写在浏览器的终端,检查--> console 3. 基本数据类型:数字,字符串,列表,字典,布尔类型。 条件语句: for 循环: 4. 字符串转成数字类 阅读全文
posted @ 2017-08-24 20:29 momo8238 阅读(155) 评论(0) 推荐(0)
初识Javascript
摘要:1. Javascript 是一门独立的编程语言,浏览器恰好就是一个Javascript的解释器。Javascript与Java 没有半毛钱关系。 Javascript代码一般存在于HTML中。Javascript的存在形式。 (1)写在head 中; (2)写在js文件中,然后再导入一下就好了。 阅读全文
posted @ 2017-08-24 17:32 momo8238 阅读(140) 评论(0) 推荐(0)
CSS-background
摘要:1. Background-image: url ('image/4.gif') 图片的路径。默认div如果比较大的话,图片会重复放。 Background-repeat: repeat-x; 水平方向堆叠。 Background-repeat: repeat-y; 竖直方向堆叠。 Backgrou 阅读全文
posted @ 2017-08-24 14:49 momo8238 阅读(163) 评论(0) 推荐(0)
CSS-hover
摘要:1. padding:0 10px; 表示上下边距是0,左右边距是10. 2. padding:0 10px 0 10px; 上-右-下-左。(顺时针方向) 3. .pg-header .menu:hover; 表示只要鼠标移动到当前标签上时,就会应用这个下面所定义的样式。 hover: 徘徊在.. 阅读全文
posted @ 2017-08-24 14:10 momo8238 阅读(364) 评论(0) 推荐(0)
CSS-overflow
摘要:1. overflow:hidden; 超出的部分就不显示了。overflow是溢出的意思。 运行结果: 2. overflow:auto 超过大小的话,就出现滚动条。 运行结果: 阅读全文
posted @ 2017-08-24 12:16 momo8238 阅读(165) 评论(0) 推荐(0)
CSS-posiziton
摘要:1. 想要实现,”返回顶部”永远位于页面的右下角。需要用到position函数。CSS:层叠样式表。用到了分层的功能。 position:fixed; 永远固定在一个地方。 运行结果:总是位于页面的右下角 2. margin-top:52px; 让它离上面是52px,这样两层就没有重叠的部分了,有了 阅读全文
posted @ 2017-08-24 10:43 momo8238 阅读(212) 评论(0) 推荐(0)
14课作业答疑
摘要:1. 代码重用 2.改变大小变形:左右滚动条的出现;宽度,百分比。 先在最外层设置一个绝对的宽度,再在里面设置百分比,这样就不会漂了。这样改变大小的时候就不变形了。如下:头,身子和尾巴都是980px. 3.自适应 media 4.关于图片边框的问题,默认img标签,有个1px的边框。 在IE浏览器中 阅读全文
posted @ 2017-08-24 09:23 momo8238 阅读(133) 评论(0) 推荐(0)
14课作业
摘要:1.代码 运行结果: 老师的图片: 阅读全文
posted @ 2017-08-23 22:14 momo8238 阅读(124) 评论(0) 推荐(0)
Python_css选择器
摘要:1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化。 存在方式有三种:元素内联、页面嵌入和外部引入,比较三种方式的优缺点。 语法:style = 'key1:value1;key2:value2;' 行内式: 在标签中使用 style='x 阅读全文
posted @ 2017-08-23 11:16 momo8238 阅读(2906) 评论(0) 推荐(0)
HTML表单之input元素的23种type类型
摘要:摘自:http://www.cnblogs.com/xiaohuochai/p/5179909.html 阅读全文
posted @ 2017-08-22 17:10 momo8238 阅读(1083) 评论(0) 推荐(0)
css之display样式,padding,margin
摘要:1. 块级标签变成行内标签 效果: 2. 行内标签变成块级标签 运行结果: 3. display:none; 让标签消失。display:block/inline;标签恢复。 display: inline; display:block; display:inline-block; 兼有两者的属性( 阅读全文
posted @ 2017-08-22 12:04 momo8238 阅读(1080) 评论(0) 推荐(0)
css之float样式
摘要:1. float:让标签浪起来,块级标签也可以堆叠。 可以实现让两个div把屏幕分成2块。让div飘起来。向左飘的话,就是向左靠齐。向右飘的话,就是向右靠齐。 运行结果: 2.写个例子: 代码: 效果: 3. 儿子飘起来了,父亲把儿子拉回来。这样父亲的边框就能正常显示了。 运行结果: 4. 让左右两 阅读全文
posted @ 2017-08-22 10:46 momo8238 阅读(486) 评论(0) 推荐(0)
css边框以及其他常用样式
摘要:1. 边框是1像素,实体的,红色的。 在浏览器的--检查下面可以选择颜色条。修改样式,变成虚线。左边框,右边框。border-left 2.定义高度宽度:height(高度,百分比),width(宽度,像素,百分比), text-align:center;(水平方向居中) line-height(垂 阅读全文
posted @ 2017-08-22 09:44 momo8238 阅读(208) 评论(0) 推荐(0)
css的存在形式及优先级
摘要:1. 查看源代码 在谷歌浏览器中右击-->点检查 2. CSS中style优先级,标签上的style优先,其它按照编写顺序越更新越优先,后面的会把前面的覆盖掉。 3. 如果想在其它的html文件中也用当前文件中的style的话,可以在根目录下创建一个CSS样板文件,名字为:commons.css。 阅读全文
posted @ 2017-08-22 09:03 momo8238 阅读(195) 评论(0) 推荐(0)
CSS选择器
摘要:一,CSS: 1)在标签上设置style属性:key-value的格式,之间用分号分割 2)在head里面写上style标签,在style标签中编写样式。 -id选择器 #i1{background-color:#2459a2; height:48px;} -class选择器 .名称{....... 阅读全文
posted @ 2017-08-21 22:17 momo8238 阅读(166) 评论(0) 推荐(0)
Chrome查看html样式基本操作-div
摘要:1. div 标签(白板,块级标签),想学会前端,只需要学会div+css就可以了。 span 标签 (白板,行内标签) 2. Chrome审查元素的使用。右击浏览器--检查 可以看标签是块级还是行内标签,也可以轻易地定位。 可以查看别人的样式,然后据为己有。 阅读全文
posted @ 2017-08-21 13:57 momo8238 阅读(1234) 评论(0) 推荐(0)
html的body内标签之label标签和fieldset标签
摘要:1. <label> 标签为 input 元素定义标注(标记)。 label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。 <label> 标签的 f 阅读全文
posted @ 2017-08-20 22:20 momo8238 阅读(307) 评论(0) 推荐(0)
html的body内标签之图片及表格
摘要:<li> list 标签定义和用法: <li> 标签定义列表项目。 <li> 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中。 1. img (src,alt,title) 列表: 把“1.png“ 放到程序的同级目录,把图片导入。 <img src="1.png"> 运行结果: 2 阅读全文
posted @ 2017-08-20 20:57 momo8238 阅读(1146) 评论(0) 推荐(0)
html的body内标签之超链接
摘要:一,先来个简单的练练手,target="_blank" 的作用是在新的tab中打开页面。href 是超链接的意思。 二,a标签指的是超链接跳转,a标签不能提交到数据库,它提交不到后台。 做锚 href='#某个标签的ID' 标签的ID不允许重复。这样就把“第一章”和“第一章的内容”关联起来了。 三, 阅读全文
posted @ 2017-08-20 20:17 momo8238 阅读(753) 评论(0) 推荐(0)
html的body内标签之多行文本及下拉框
摘要:一,<textarea>默认值<textarea> -name属性,textarea的默认值放到中间 <select> name,内部option value,提交到后台,size, multiple 二. textarea 多行文本输入框 运行结果: 三.默认值放到中间,name="meno" 规 阅读全文
posted @ 2017-08-20 13:30 momo8238 阅读(4246) 评论(0) 推荐(0)
html的body内标签之input系列2
摘要:一,input系列:name属性用于让后台拿数据。value 只是在屏幕上的显示。 1. input type='text' name='query' value="张三"(相当于默认值) 2. input type='password' name='XXX' value="张三"(相当于默认值) 阅读全文
posted @ 2017-08-20 10:14 momo8238 阅读(299) 评论(0) 推荐(0)
文字笔记
摘要:HTML 1、一套规则,浏览器认识的规则。 2、开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(Web框架) 3、本地测试 - 找到文件路径,直接浏览器打开 ... 阅读全文
posted @ 2017-08-20 06:08 momo8238 阅读(173) 评论(0) 推荐(0)
html的body内标签之input系列1
摘要:1. Form的作用:提交当前的表单. 类似于去了银行提交的纸质单子,递到后台去办理相关业务。 text,password只有输入的功能;button,submit只有点击的功能。想要把这些信息提交,需要用Form button毛线用也没有(以后学JS的时候可以赋予一定的功能),submit才有真正 阅读全文
posted @ 2017-08-19 21:53 momo8238 阅读(299) 评论(0) 推荐(0)
Body标签
摘要:1. HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字。下面就是以字母或数字表示的特殊符号大全。 HTML常用特殊字符:只要你认识了 HTML 标记,你便会知道特殊字符的用处。 2.课堂笔记: 3.例子-&nbsp;的应用 运行结果: 4.例 阅读全文
posted @ 2017-08-19 14:48 momo8238 阅读(179) 评论(0) 推荐(0)
html的head内标签
摘要:ctrl+?:自动注释 ctrl+/: 注释多行,再按一次,取消注释的多行。 一,*********本地测试的方法:1-找到文件路径,直接浏览器打开;2-pycharm打开测试。 二,模板的解释: html: head+body,一个文件里面只能有一个html标签。 三,head标签中包含的内容: 阅读全文
posted @ 2017-08-19 12:24 momo8238 阅读(510) 评论(0) 推荐(0)
前端简介
摘要:1. 三把利器 A:HTML 赤裸裸的人,自身带一些属性,大概20个标签。(其实就是一套规则,一套浏览器认识的规则) B:开发者需要做的工作: --学习HTML规则 -- 开发后台程序 1. 写HTML文件;(充当模板的作用)以后用replace替换,就可以开发成千上万的网页。 2.数据库获取数据, 阅读全文
posted @ 2017-08-18 21:20 momo8238 阅读(282) 评论(0) 推荐(0)
小碎知识
摘要:1. 代码: 运行结果: 阅读全文
posted @ 2017-08-18 15:01 momo8238 阅读(168) 评论(0) 推荐(0)
Selector 模型
摘要:1.服务器端: 客户端: 运行结果: 多连接可以并发。 多个用户接入: 阅读全文
posted @ 2017-08-18 14:47 momo8238 阅读(363) 评论(0) 推荐(0)
用select模拟一个socket server成型版2
摘要:1.字典队列测试 运行结果: 2. 服务器端代码: 客户端代码: 阅读全文
posted @ 2017-08-18 11:33 momo8238 阅读(127) 评论(0) 推荐(0)
用select模拟一个socket server成型版
摘要:1.你往output里面放什么,下次循环就出什么。 2. 1.服务器端:实现了收和发的分开进行 客户端: 运行结果:当一个客户端断开时,服务器端也会报错。下面的完整版摘自老师的博客。 2. 服务器端 客户端: 阅读全文
posted @ 2017-08-18 10:17 momo8238 阅读(153) 评论(0) 推荐(0)
用select模拟一个socket server
摘要:1, 必须在非阻塞模式下,才能实现IO的多路复用,否则一个卡住就都卡住了。(单线程下的多路复用) 先检测自己,现在没有客户端连进来,所以会卡住。 运行结果: 2. 客户端代码: 服务器端: 运行结果:fd=240 文件描述符 3. 客户端: 运行结果: 至此链接已经建立。 4.最终版本 服务器端: 阅读全文
posted @ 2017-08-17 22:20 momo8238 阅读(300) 评论(0) 推荐(0)
用select (多路复用)模拟一个 socket server
摘要:需求:用select (多路复用)模拟一个 socket server。可以接收多并发。 1. 一开始是检测自己,如果我有活动了,就说明有客户端要连我了。 运行结果:卡住了,有客户端进来时才会不卡。 2.服务器端 客户端: 运行结果: 有2个链接的情况下,无法多次接收数据 3. server端进行修 阅读全文
posted @ 2017-08-17 20:45 momo8238 阅读(336) 评论(0) 推荐(0)
IO模式
摘要:二 IO模式 刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段: 1. 等待数据准备 (Waiting for the data to be ready) 阅读全文
posted @ 2017-08-17 17:30 momo8238 阅读(268) 评论(0) 推荐(0)
IO多路复用
摘要:同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 一 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O 用户空间与内核空间 阅读全文
posted @ 2017-08-17 16:38 momo8238 阅读(139) 评论(0) 推荐(0)
进程、线程和协程的理解
摘要:转自 http://blog.leiqin.info/2012/12/02/%E8%BF%9B%E7%A8%8B-%E7%BA%BF%E7%A8%8B%E5%92%8C%E5%8D%8F%E7%A8%8B%E7%9A%84%E7%90%86%E8%A7%A3.html 进程、线程和协程的理解 进程、 阅读全文
posted @ 2017-08-17 08:59 momo8238 阅读(149) 评论(0) 推荐(0)
进程、线程和协程--自己的理解
摘要:1. IO 操作不占用CPU(从硬盘读数据,从网络读数据,从内存读取数据) 计算占用CPU,例如1+1=2的计算就是占用CPU的。 python 多线程,不适合CPU密集操作系统的任务,适合IO操作密集型的任务。 2. 进程、线程和协程之间的关系和区别也困扰我一阵子了,最近有一些心得,写一下。 进程 阅读全文
posted @ 2017-08-17 08:41 momo8238 阅读(388) 评论(0) 推荐(0)
Select-poll-epoll-简介
摘要:1。 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和writeable, 或者通信错误,select()使得同时监控多个连接变的简单,并且这比写一个长循 阅读全文
posted @ 2017-08-16 15:53 momo8238 阅读(220) 评论(0) 推荐(0)
事件驱动与异步IO--待更新
摘要:论事件驱动与异步IO 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求。(启动一个协程) 上面的几种方式 阅读全文
posted @ 2017-08-16 14:01 momo8238 阅读(151) 评论(0) 推荐(0)
Gevent-socket
摘要:1. 通过Gevent实现单线程下的多socket并发。 server 端: Client 端: 运行结果:实现了并发 2. 阅读全文
posted @ 2017-08-16 11:53 momo8238 阅读(424) 评论(0) 推荐(0)
Urllib--爬虫
摘要:1.简单爬虫 运行结果: 2.爬多个网页 运行结果: 3.测试运行时间: 运行结果:通过时间看到也是串行运行的。gevent默认检测不到 urllib 进行的是否是io操作。 4.同步与异步的时间比较: 运行时间:几乎差不多,看不出异步的优势。 5.因为gevent默认检测不到 urllib 进行的 阅读全文
posted @ 2017-08-16 11:33 momo8238 阅读(182) 评论(0) 推荐(0)
Gevent-自动挡切换
摘要:Gevent: Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。在greenlet 中用sw 阅读全文
posted @ 2017-08-16 10:53 momo8238 阅读(223) 评论(0) 推荐(0)
Greenlet-手动切换
摘要:yield()是自己写的协程,Greenlet( )是已经封装好了的协程。 协程:遇到 I/O 操作就切换到别的地方了(先去处理其他携程去了)。等原协程的 I/O 操作一完成就切回去。这样就把 I/O的时间给节省出来了。 Greenlet:手动挡 gevent: 自动挡 运行结果: 阅读全文
posted @ 2017-08-16 06:34 momo8238 阅读(220) 评论(0) 推荐(0)
协程-Greenlet
摘要:协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。 线程切换的时候会保存到CPU里面。 因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上 阅读全文
posted @ 2017-08-16 06:21 momo8238 阅读(207) 评论(0) 推荐(0)
协程简介-异步IO
摘要:协程 1. 协程,又称微线程,纤程。协程是用户自己控制的,CPU根本不知道协程的存在,CPU只认识线程。 2. 线程切换的时候,会保存在CPU的寄存器里面。 协程切换的时候,却都是由用户自己的实现的。 3。在单线程下实现并发的效果,就是通过协程来完成的。例如yield() 英文名Coroutine。 阅读全文
posted @ 2017-08-15 15:31 momo8238 阅读(252) 评论(0) 推荐(0)
关于__name__=='__main__
摘要:if __name__=='__main__' : 为了区分你是主动执行这个脚本,还是从别的地方把它当做一个模块去调用。 如果是主动执行,则执行。如果是调用的,则不执行主体。 里面存放的可能是一些测试模块。 可以通过用print(__name__) 来测试 __name__ 是否等于 __main_ 阅读全文
posted @ 2017-08-15 08:11 momo8238 阅读(94) 评论(0) 推荐(0)
进程池-限制同一时间在CPU上运行的进程数
摘要:if __name__=='__main__' : 为了区分你是主动执行这个脚本,还是从别的地方把它当做一个模块去调用。 如果是主动执行,则执行。如果是调用的,则不执行主体。 1. 串行:切记切记:pool.close()必须在pool.join() 之前。 运行结果: 2. 5个一组并行执行 运行 阅读全文
posted @ 2017-08-14 17:22 momo8238 阅读(365) 评论(0) 推荐(0)
进程同步-进程内部也需要锁
摘要:进程内部也需要锁。进程之间不能相互访问,为什么还需要锁??? 因为他们是屏幕共享的,所以需要加个锁。防止打印出来是混乱的。 运行结果: 阅读全文
posted @ 2017-08-14 16:16 momo8238 阅读(273) 评论(0) 推荐(0)
进程间通讯-3(Manager)-实现数据的同时修改
摘要:Manager 可以实现列表,字典,变量,锁,信号量,事件等的数据之间的共享。Manager已经默认加锁了。控制数据不会乱。 实现了不同进程之间数据的共享,并且可以同时修改。 运行结果: 阅读全文
posted @ 2017-08-14 15:34 momo8238 阅读(270) 评论(0) 推荐(0)
进程间通讯-2(pipe)
摘要:通过pipe 管道的方式也可以实现进程间通信。 父进程和子进程之间可以实现相互通信。 运行结果: 阅读全文
posted @ 2017-08-14 15:18 momo8238 阅读(242) 评论(0) 推荐(0)
python 中的queue 与多进程--待继续
摘要:一、先说说Queue(队列对象) Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的“先吃先拉”与“后吃先吐”,其实就是这里说的队列,队列的构造的时候可以定义它的容量,别吃撑了,吃多了,就会报错,构造的时候不写或者写个小于1的数则表示无限多 import Qu 阅读全文
posted @ 2017-08-14 14:42 momo8238 阅读(735) 评论(0) 推荐(0)
进程间通讯-1-传递函数的方法
摘要:1. 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用下面的方法。 2. 线程Queue, 用于同一主程序下的不同线程之间的互相访问,(生产者消费者模型)。出了这个进程以后,就没法访问了。导入方法:import queue;定义方法 q=queue.Queue( ) 3. 进程Queu 阅读全文
posted @ 2017-08-14 12:13 momo8238 阅读(470) 评论(0) 推荐(0)
多进程
摘要:1.1个进程实例: 运行结果: 2. 同时启用3个进程: 运行结果: 3.进程里面可以再起新的线程: 运行结果: 4.取进程号。没有起多进程,却出现了2个进程号。再执行一遍,发现父进程号不变,子进程号在发生变化。 运行结果: 每一个进程默认都是由父进程启动的。11976这个进程是由pyCharm 8 阅读全文
posted @ 2017-08-14 09:59 momo8238 阅读(157) 评论(0) 推荐(0)
queue队列
摘要:1.作用:解耦,提高效率。队列就是一个容器,一个有顺序的容器。 q.queue.Queue(maxsize=3): 生成一个队列的实例,并且最多存储3个元素 q.get(item,block=Ture, timeout=None ): 从队列里取数据 q.get( block=Ture, timeo 阅读全文
posted @ 2017-08-12 23:33 momo8238 阅读(209) 评论(0) 推荐(0)
python-输出颜色显示
摘要:显示颜色格式:\033[显示方式;字体色;背景色m...主题内容hello world...\033[0m \033 从这里开始标颜色.................................................\033[0m 标色到这里为止,继续采用默认颜色 1.颜色定义说明 阅读全文
posted @ 2017-08-11 18:09 momo8238 阅读(718) 评论(0) 推荐(0)
python深浅copy-转自EVA的博客
摘要:感谢Eva_J, http://www.cnblogs.com/Eva-J/p/5534037.html,新手上路,转载纯为自己学习。 初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及 阅读全文
posted @ 2017-08-11 17:23 momo8238 阅读(221) 评论(0) 推荐(0)
Events-事件-红绿灯
摘要:Event: 用于线程之间状态的同步。对全局变量不断地做修改。 Event=threading.Event() #生成1个event的对象 Event.wait() #等着设定全局变量。检测标志位是否有设置,如果标志位没有设置的话,会一直卡在这里。等待标志位被设定。 如果标志位被设定了,代表绿灯,直 阅读全文
posted @ 2017-08-11 15:59 momo8238 阅读(256) 评论(0) 推荐(0)
锁-lock,信号量4
摘要:1. 全局解释器锁,保证同一时间只有一个线程在执行,但是由于它是把数据copy成了两份,所以 只有全局解释器锁的时候,数据加减照样出错了。 2.用户态的锁,保证同一时间,只有一个线程在真真正正地修改数据。 修改数据之前,先加一把锁。修改完了以后,释放锁。修改数据的时候,把程序变成串行的。 运行结果: 阅读全文
posted @ 2017-08-11 14:18 momo8238 阅读(202) 评论(0) 推荐(0)
python-GIL(Global Interpreter Lock)
摘要:1. 不管计算机是几核的,在Python中都是串行的。只不过是在不停地进行上下文的切换。 转发自下面网址: http://python.jobbole.com/81822/ 前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不 阅读全文
posted @ 2017-08-11 12:24 momo8238 阅读(186) 评论(0) 推荐(0)
线程与进程3-守护线程
摘要:join(),等待子线程执行完了,主线程才继续往下执行,等所有线程执行完了,才退出程序。 当把子线程变成守护线程以后,只要主线程(非守护线程)执行完就退出程序,不管子线程完了没完。 主线程没法设置成守护线程。 运行结果,没有等待子线程(守护线程)的sleep的2S,而是直接结束了程序了。 没有看到p 阅读全文
posted @ 2017-08-11 12:03 momo8238 阅读(171) 评论(0) 推荐(0)
线程与进程-2
摘要:1. 主线程启动了子线程之后,主线程与子线程之间是相互独立的。默认情况下主线程是不会等待子线程执行完毕的,主线程只会按照自己的步调执行。 所以在主线程中是没法测定子线程的运行时间的。 运行结果: 2. 用join()函数等待每个的执行结果,每个都执行完了再打印总用了的时间。 运行结果: 3. 用 t 阅读全文
posted @ 2017-08-11 10:59 momo8238 阅读(162) 评论(0) 推荐(0)
线程与进程-1
摘要:1,线程:一堆指令的集合,OS去调度CPU的最小单位就是线程, 线程被包含在进程中,是进程中的实际操作单位。 2,不同的应用软件占用不同的内存,否则可以相互访问,就没有安全性了。每一个程序的内存是独立的。 3.进程:一个程序的各种资源的集合叫进程。 4.进程要操作CPU,必须要先创建一个线程。操作C 阅读全文
posted @ 2017-08-11 07:55 momo8238 阅读(164) 评论(0) 推荐(0)
FTP-成型版本
摘要:1. 旧知识回顾-反射 hasattr(object, name) 说明:判断对象object是否包含名为name的属性(方法) 测试代码如下: 运行结果: 2. 自己写的 服务器端脚本 客户端脚本: 阅读全文
posted @ 2017-08-10 11:29 momo8238 阅读(213) 评论(0) 推荐(0)
FTP-Server
摘要:1.目录: 2. ftp_client.py 3. Day8->ftp_server -> core ->main.py 4.运行:实现从客户端到服务器端上传一个视频文件 客户端运行: 服务器端运行结果: 阅读全文
posted @ 2017-08-10 10:09 momo8238 阅读(228) 评论(0) 推荐(0)
Json-转自菜鸟教程
摘要:1. python中为什么用json有什么作用??不是python用json,json是类似xml的一种通用格式,在很多地方都可以用。json相比xml,数据量更小,而且可以很方便的和解释型语言的结构相互转换。 2. 常用的两种Json函数: Json.dumps: 将 Python 对象编码成 J 阅读全文
posted @ 2017-08-10 09:56 momo8238 阅读(984) 评论(0) 推荐(0)
SocketServer-实现并发处理3
摘要:用socketserver创建一个服务的步骤: 1 创建一个request handler class(请求处理类),合理选择StreamRequestHandler和DatagramRequestHandler之中的一个作为父类(当然,使用BaseRequestHandler作为父类也可),并重写 阅读全文
posted @ 2017-08-09 17:08 momo8238 阅读(170) 评论(0) 推荐(0)
SocketServer-实现并发处理2
摘要:转发自MnCu的博客: http://www.cnblogs.com/MnCu8261/p/5546823.html python基础之socket与socketserver 引入 Socket的英文原义是“孔”或“插座”,在Unix的进程通信机制中又称为‘套接字’。套接字实际上并不复杂,它是由一个 阅读全文
posted @ 2017-08-09 16:24 momo8238 阅读(289) 评论(0) 推荐(0)
SocketServer-实现并发处理
摘要:Python提供了两个基本的socket模块。 一个是socket,它提供了标准的BSD Socket API;另一个是socketServer,它提供了服务器中心类,可以简化网络服务器的开发,其实就是对socket()的再封装。 1.前言: 虽说用Python编写简单的网络程序很方便,但复杂一点的 阅读全文
posted @ 2017-08-08 14:07 momo8238 阅读(1864) 评论(0) 推荐(1)
Socket_FTP
摘要:1. md5加密回顾: 2. FTP入门版: 服务器端: 客户端: 客户端的输入及运行结果: 服务器端的运行结果: 3. FTP+MD5验证 服务器端: 客户端: 服务器端运行结果: 客户端运行结果: 4.FTP+MD5验证+粘包处理: 服务器端: 客户端: 服务器端的输出: 客户端的输出: 阅读全文
posted @ 2017-08-08 10:44 momo8238 阅读(189) 评论(0) 推荐(0)
Socket_SSH-3(粘包)
摘要:粘包:两次数据粘到一起了。在Windows中基本看不出来效果。 服务器端的配置: 客户端的配置: 阅读全文
posted @ 2017-08-07 21:42 momo8238 阅读(130) 评论(0) 推荐(0)
Socket_SSH-2(大文件的一次传输)
摘要:服务器端的输出 客户端的输出 让超过1024大小的数据的一次返回,先在服务器端计算大小,把需要接受的次数传给客户端。 服务器端: 客户端: 实现收到的数据大小跟要传输的数据大小相一致。 客户端: 关于字符长度: 结果输出: 阅读全文
posted @ 2017-08-07 17:40 momo8238 阅读(194) 评论(0) 推荐(0)
编码好文
摘要:参考来源:http://blog.csdn.net/pipisorry/article/details/44136297 查看默认编码方式: Python源码的编码方式 str与字节码 s = "人生苦短" s是个字符串,它本身存储的就是字节码(这个s可能是文件中的一行,或者命令行中的一行?)。那么 阅读全文
posted @ 2017-08-04 12:37 momo8238 阅读(198) 评论(0) 推荐(0)
字符编码
摘要:恢复内容开始 1.子类可以继承父类的方法: 运行结果: 2.在子类中给父类方法增加新功能。 运行结果如下:相当于给父类的方法增加了新功能。 3.子类之间的方法不能相互调用,women是不能调用man下面的smoke方法的。 4.子类中的man可以多传一个参数,同时不要影响women的正常运行。 运行 阅读全文
posted @ 2017-08-04 11:49 momo8238 阅读(299) 评论(0) 推荐(0)
关于编码和乱码
摘要:关于编码和乱码,简单讲一下 通常问这类问题的人是混淆了若干个不同的概念,并且他们自己也没有意识到自己混淆了这些概念。 1.终端显示字符的编码(Windows下终端是cmd,Linux下是各种terminal,远程登录是putty或者xshell) 2.shell 环境的编码。比如中文版Windows 阅读全文
posted @ 2017-08-03 17:39 momo8238 阅读(336) 评论(0) 推荐(0)
Socket_SSH-1
摘要:服务器端: 客户端: 服务器端运行结果: 客户端运行结果: 阅读全文
posted @ 2017-08-03 11:24 momo8238 阅读(155) 评论(0) 推荐(0)
动态导入模块
摘要:应用场景:知道模块名的字符串形式,想导入模块,怎么办呢? 因为aa是个字符串格式,所以没法导入aa.py 模块 有两种可用的方法: aa里面的程序: 官方建议的方法是第2种: 阅读全文
posted @ 2017-08-02 17:46 momo8238 阅读(128) 评论(0) 推荐(0)
Socket网络编程实例2
摘要:两个程序通过“网络”交互数据就使用socket,它只负责两件事:建立连接,传递数据。 所有的数据传输接收,必须都使用byte格式 1.简单实例: 运行结果:客户端 运行结果:服务器端 2.实例2传中文: 3.实例-与一个客户端不停地通话,用到 while循环: 4.实例-一个客户通话结束后,第二个客 阅读全文
posted @ 2017-08-02 10:27 momo8238 阅读(210) 评论(0) 推荐(0)
Socket网络编程实例1
摘要:Socket: 对所有上层协议(TCP/IP,UDP等)的底层封装。 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。 协议类型又叫地址簇 socket实例,分别写在两个.py里面,客户端发出去的内容是小写 阅读全文
posted @ 2017-08-01 16:24 momo8238 阅读(291) 评论(0) 推荐(0)
异常
摘要:不想让用户看到直接的错误提示: 1. 一个小例子 运行结果: 2.多个错误同时判断,Error1,Error2 是或者的关系,只要有一个出错,就打印e 3. 所有错误一把抓,但是不知道具体是哪个出错了。(一般不用,否则无法调错。一般用在末尾,用于抓所有未知错误) 运行结果: 4.自定义的异常: 运行 阅读全文
posted @ 2017-08-01 12:04 momo8238 阅读(134) 评论(0) 推荐(0)
反射
摘要:1.反射的作用:把字符串反射成内存中的对象的地址。两句话搞定所有判断 hasattr(obj,name_str):判断一个对象obj里是否有对应的name_str字符串的方法。 getattr(obj,name_str) : 根据字符串去获取obj对象里的对应的方法的内存地址。 setattr(ob 阅读全文
posted @ 2017-08-01 10:07 momo8238 阅读(141) 评论(0) 推荐(0)