风-fmgao

导航

06 2018 档案

Mac Terminal终端光标的快捷键操作
摘要:2016年08月18日 18:26:06 阅读数:4217 2016年08月18日 18:26:06 阅读数:4217 阅读数:4217 Mac Terminal终端和linux上终端光标的快捷键操作是一样的,都是来自Emacs这个神级的编辑器,由于我以前vim用的多,没怎么用过Emacs,所以就不 阅读全文

posted @ 2018-06-30 10:16 风-fmgao 阅读(1082) 评论(0) 推荐(0)

位置属性
摘要:定位有三种: 1.相对定位 2.绝对定位 3.固定定位 这三种定位,每一种都暗藏玄机,所以我们要一一单讲。 相对定位 相对定位:相对于自己原来的位置定位 现象和使用: 1.如果对当前元素仅仅设置了相对定位,那么与标准流的盒子什么区别。 2.设置相对定位之后,我们才可以使用四个方向的属性: top、b 阅读全文

posted @ 2018-06-30 08:38 风-fmgao 阅读(248) 评论(0) 推荐(0)

浮动与清除浮动
摘要:什么是标准文档流 宏观的将,我们的web页面和ps等设计软件有本质的区别,web 网页的制作,是个“流”,从上而下 ,像 “织毛衣”。而设计软件 ,想往哪里画东西,就去哪里画 标准文档流下 有哪些微观现象? 1.空白折叠现象 多个空格会被合并成一个空格显示到浏览器页面中。img标签换行写。会发现每张 阅读全文

posted @ 2018-06-30 08:36 风-fmgao 阅读(219) 评论(0) 推荐(0)

display属性
摘要:display 1.控制HTML元素的显示和隐藏 2.块级元素与行内元素的转换。 block(块级) 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。 inline(行内) 行内元素 只要设置了display: inline,那么元素的width、height、margi 阅读全文

posted @ 2018-06-30 08:35 风-fmgao 阅读(178) 评论(0) 推荐(0)

背景属性
摘要:常用背景相关属性: 属性描述 background-color 规定要使用的背景颜色。 background-image 规定要使用的背景图像。 background-size 规定背景图片的尺寸。 background-repeat 规定如何重复背景图像。 background-attachmen 阅读全文

posted @ 2018-06-30 08:34 风-fmgao 阅读(152) 评论(0) 推荐(0)

CSS盒子模型
摘要:HTML文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒子模型。 盒子模型通过四个边界来描述:margin(外边距),border(边框),padding(内填充),content(内容区域),如图所示: 注意:浏览器的调试窗口中通常会有相似的模型可供开发 阅读全文

posted @ 2018-06-30 08:34 风-fmgao 阅读(146) 评论(0) 推荐(0)

字体属性
摘要:text-align 文本对齐 text-align 属性规定元素中的文本的水平对齐方式。 line-height 行高 text-decoration 文字装饰。 阅读全文

posted @ 2018-06-30 08:33 风-fmgao 阅读(160) 评论(0) 推荐(0)

字体相关CSS属性介绍
摘要:font-family 字体系列。 font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。 简单实例: body { font-family: "Microsoft Yahei", "微软雅黑", "Arial 阅读全文

posted @ 2018-06-30 08:32 风-fmgao 阅读(145) 评论(0) 推荐(0)

伪元素选择器
摘要:伪元素 介绍常用的伪元素。 first-letter 用于为文本的首字母设置特殊样式。 例如: p:first-letter { font-size: 48px; } before 用于在元素的内容前面插入新内容。 例如: p:before { content: "*"; color: red; } 阅读全文

posted @ 2018-06-30 08:31 风-fmgao 阅读(185) 评论(0) 推荐(0)

选择器的优先级
摘要:我们现在已经学过了很多的选择器,也就是说我们有很多种方法从HTML中找到某个元素,那么就会有一个问题:如果我通过不用的选择器找到了相同的一个元素,并且设置了不同的样式,那么浏览器究竟应该按照哪一个样式渲染呢?也就是不同的选择器它们的优先级是怎样的呢? 是先来后到呢还是后来居上呢?统统不是,它是按照下 阅读全文

posted @ 2018-06-30 08:31 风-fmgao 阅读(168) 评论(0) 推荐(0)

伪类选择器
摘要:常用的几种伪类选择器。 没有访问的超链接a标签样式: a:link { color: blue; } 访问过的超链接a标签样式: a:visited { color: gray; } 鼠标悬浮在元素上应用样式: a:hover { background-color: #eee; } 鼠标点击瞬间的样 阅读全文

posted @ 2018-06-30 08:30 风-fmgao 阅读(115) 评论(0) 推荐(0)

分组选择器
摘要:分组 当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。 例如: 为div标签和p标签统一设置字体为红色的样式。 通常,我们会分两行来写,更清晰: 阅读全文

posted @ 2018-06-30 08:29 风-fmgao 阅读(168) 评论(0) 推荐(0)

组合选择器
摘要:高级选择器 后代选择器 因为HTML元素可以嵌套,所以我们可以从某个元素的后代查找特定元素,并设置样式: div p { color: red; } 从div的所有后代中找p标签,设置字体颜色为红色。 儿子选择器 div>p { color: red; } 从div的直接子元素中找到p标签,设置字体 阅读全文

posted @ 2018-06-30 08:28 风-fmgao 阅读(214) 评论(0) 推荐(0)

属性选择器
摘要:除了HTML元素的id属性和class属性外,还可以根据HTML元素的特定属性选择元素。 根据属性查找 [title] { color: red; } 根据属性和值查找 找到所有title属性等于hello的元素: [title="hello"] { color: red; } 找到所有title属 阅读全文

posted @ 2018-06-30 08:28 风-fmgao 阅读(93) 评论(0) 推荐(0)

基本选择器
摘要:首先来说一下,什么是选择器。在一个HTML页面中会有很多很多的元素,不同的元素可能会有不同的样式,某些元素又需要设置相同的样式,选择器就是用来从HTML页面中查找特定元素的,找到元素之后就可以为它们设置样式了。 选择器为样式规则指定一个作用范围。 基础选择器包括: 标签选择器 类选择器 ID选择器 阅读全文

posted @ 2018-06-30 08:27 风-fmgao 阅读(186) 评论(0) 推荐(0)

css引用方式
摘要:网页中引用CSS样式 内联样式 行内样式表 外部样式表 链接式 导入式 内嵌方式 style标签 <!doctype html> <html> <head> <meta charset="utf8"> <style> p { color: red; } </style> </head> <body> 阅读全文

posted @ 2018-06-30 08:26 风-fmgao 阅读(139) 评论(0) 推荐(0)

标签嵌套规则
摘要:块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素,例如: <div><div></div><h1></h1><p><p></div> ✔️ <a href=”#”><span></span></a> ✔️ <span><div></div></span> ❌ 阅读全文

posted @ 2018-06-30 08:23 风-fmgao 阅读(189) 评论(0) 推荐(0)

标签分类
摘要:HTML中标签元素三种不同类型:块状元素,行内元素,行内块状元素。 常用的块状元素: <div> <p> <h1>~<h6> <ol> <ul> <table><form> <li> 常用的行内元素 <a> <span> <br> <i> <em> <strong> <label> 常用的行内块状元 阅读全文

posted @ 2018-06-30 08:21 风-fmgao 阅读(107) 评论(0) 推荐(0)

常用标签
摘要:标题标签 h1~h6 <h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。 由于 h 元素拥有确切的语义,因此请您慎重地选择恰当的标签层级来构建文档的结构。因此,请不要利用标题标签来改变同一行中的字体大小。相反,我们应当使用css来定义来达到漂亮的显示效果。 阅读全文

posted @ 2018-06-30 08:20 风-fmgao 阅读(224) 评论(0) 推荐(0)

表格标签
摘要:表格标签 table 表格由<table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由<td>标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等 <div clas 阅读全文

posted @ 2018-06-30 08:20 风-fmgao 阅读(174) 评论(0) 推荐(0)

head
摘要:head标签 我们首先来介绍一下head标签的主要内容和作用,文档的头部描述了文档的各种属性和信息,包括文档的标题、编码方式及URL等信息,这些信息大部分是用于提供索引,辩认或其他方面的应用(移动端)的等。 以下标签是可以用在head标签中的: <head lang='en'> <title>标题信 阅读全文

posted @ 2018-06-30 08:07 风-fmgao 阅读(226) 评论(0) 推荐(0)

Git 安装和使用教程
摘要:git 提交 全部文件 git add . git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个句点。 git add -A表示添加所有内容, git add . 表示添加新文件和编辑过的文件不包括 阅读全文

posted @ 2018-06-28 14:25 风-fmgao 阅读(137) 评论(0) 推荐(0)

多线程示例
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/26 14:36# @File : 多线程.pyimport threadingfrom time import ctime, sleepdef music(name): for i 阅读全文

posted @ 2018-06-26 16:42 风-fmgao 阅读(106) 评论(0) 推荐(0)

Python一切皆对象
摘要:Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。 Java虽然也是面向对象编程的语言,但是血统没有Python纯正。比如Java的八种基本数据类型之一int,在持久化的时候,就需要包装成Integer类对象。但是在python中,一切皆对象。数字、字符串、元组、列表、 阅读全文

posted @ 2018-06-26 15:39 风-fmgao 阅读(201) 评论(0) 推荐(0)

Python 面向对象
摘要:Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更 阅读全文

posted @ 2018-06-26 15:09 风-fmgao 阅读(192) 评论(0) 推荐(0)

pymysql增删改查
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/24# 1、增删改import pymysqlconn = pymysql.connect( host='127.0.0.1', port=3306, user='root', passwo 阅读全文

posted @ 2018-06-24 12:05 风-fmgao 阅读(137) 评论(0) 推荐(0)

pymysql简单链接示例
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/24import pymysqlusername = input('username:')password = input('password:')conn = pymysql.connec 阅读全文

posted @ 2018-06-24 11:13 风-fmgao 阅读(271) 评论(0) 推荐(0)

mysql权限管理
摘要:权限管理(root) 1、创建账号 # 本地账号 create user'egon1'@'localhost' identified by '123'; # mysql -uegon1 -p123 # 远程账号,客户端ip(192.168.31.10) create user'egon1'@'192 阅读全文

posted @ 2018-06-24 09:18 风-fmgao 阅读(136) 评论(0) 推荐(0)

mysql五补充部分:SQL逻辑查询语句执行顺序
摘要:一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 1. 新建一个测试数据库TestDB; 2.创建测试表table1和table2; 3.插入测试数据; 准备工作做完以后,table1和table2看起来应该像下面这样: 四 准备SQL逻辑查询测试语句 五 阅读全文

posted @ 2018-06-24 07:34 风-fmgao 阅读(102) 评论(0) 推荐(0)

mysql安装与基本管理
摘要:一、MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关 阅读全文

posted @ 2018-06-21 14:26 风-fmgao 阅读(164) 评论(0) 推荐(0)

mysql索引原理与慢查询优化2
摘要:七 正确使用索引 一 索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果,我们在添加索引时,必须遵循以下问题 1 范围问题,或者说条件不明确,条件中出现这些符号或关键字:>、>=、<、<=、!= 、between...and...、like、 大于号、小 阅读全文

posted @ 2018-06-21 14:09 风-fmgao 阅读(134) 评论(0) 推荐(0)

mysql索引原理与慢查询优化1
摘要:一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 什么是索引? 索引在MySQL中也叫做“键 阅读全文

posted @ 2018-06-21 14:08 风-fmgao 阅读(150) 评论(0) 推荐(0)

mysql流程控制
摘要:一 流程控制 二 循环语句 阅读全文

posted @ 2018-06-21 14:07 风-fmgao 阅读(84) 评论(0) 推荐(0)

mysql存储过程
摘要:一 存储过程介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 使用存储过程的缺点: 补充:程序与数据库结合使用的三种方式 二 创建简单存储过程(无参) delimiter // create procedure 阅读全文

posted @ 2018-06-21 14:06 风-fmgao 阅读(124) 评论(0) 推荐(0)

mysql函数
摘要:一 函数 MySQL中提供了许多内置函数,例如: 更多函数:中文猛击这里 OR 官方猛击这里 一 自定义函数 二 删除函数 三 执行函数 阅读全文

posted @ 2018-06-21 14:06 风-fmgao 阅读(123) 评论(0) 推荐(0)

mysql事务
摘要:事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。 原始数据 #原子操作 #出现异常,回滚到初始状态 #介绍 delimiter // create procedure p4( out status int ) BEGIN 1. 声明 阅读全文

posted @ 2018-06-21 14:05 风-fmgao 阅读(96) 评论(0) 推荐(0)

mysql触发器
摘要:一 触发器 使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询 一 创建触发器 特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。 二 使用触发器 触发器无法由用户直接调用,而知由于对表的【增/删/改】操作被动引发的。 三 删除触发器 阅读全文

posted @ 2018-06-21 14:04 风-fmgao 阅读(118) 评论(0) 推荐(0)

mysql视图
摘要:一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查 阅读全文

posted @ 2018-06-21 14:03 风-fmgao 阅读(143) 评论(0) 推荐(0)

pymysql模块
摘要:一 介绍 之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装 二 链接、执行sql、关闭(游标) 三 execute()之sql注入 注意:符号--会注释 阅读全文

posted @ 2018-06-21 14:02 风-fmgao 阅读(165) 评论(0) 推荐(0)

mysql多表查询
摘要:本节主题 多表连接查询 复合条件连接查询 子查询 准备表 二 多表连接查询 1 交叉连接:不适用任何匹配条件。生成笛卡尔积 2 内连接:只连接匹配的行 3 外链接之左连接:优先显示左表全部记录 4 外链接之右连接:优先显示右表全部记录 5 全外连接:显示左右两个表全部记录 三 符合条件连接查询 四 阅读全文

posted @ 2018-06-21 14:01 风-fmgao 阅读(122) 评论(0) 推荐(0)

mysql单表查询
摘要:一 单表查询的语法 二 关键字的执行优先级(重点) 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7. 阅读全文

posted @ 2018-06-21 14:00 风-fmgao 阅读(121) 评论(0) 推荐(0)

mysql数据增删查授权
摘要:一 介绍 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 本节内容包括: 插入数据更新数据删除数据查询数据 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 权限管理 阅读全文

posted @ 2018-06-21 13:58 风-fmgao 阅读(156) 评论(0) 推荐(0)

mysql完整性约束
摘要:一、介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: 说明: 二、not null与default 是否可空,null表示空,非字符串not null - 不可空null - 可空 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默 阅读全文

posted @ 2018-06-21 13:56 风-fmgao 阅读(109) 评论(0) 推荐(0)

mysql枚举类型与集合类型
摘要:枚举类型与集合类型 字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...) 阅读全文

posted @ 2018-06-21 13:54 风-fmgao 阅读(247) 评论(0) 推荐(0)

mysql字符类型
摘要:字符类型 官网解释如下测试前了解两个函数 1. char填充空格来满足固定长度,但是在查询时却会很不要脸地删除尾部的空格(装作自己好像没有浪费过空间一样),然后修改sql_mode让其现出原形 2. 虽然 CHAR 和 VARCHAR 的存储方式不太相同,但是对于两个字符串的比较,都只比 较其值,忽 阅读全文

posted @ 2018-06-21 13:52 风-fmgao 阅读(158) 评论(0) 推荐(0)

mysql日期类型
摘要:日期类型 DATE TIME DATETIME TIMESTAMP YEAR 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等 验证 datetime与timestamp的区别 阅读全文

posted @ 2018-06-21 13:51 风-fmgao 阅读(139) 评论(0) 推荐(0)

mysql整数类型
摘要:数值类型 1、整数类型 整型类型的后面的宽度,不是存储宽度,是显示宽度,不够位数用0添加,够位数使用原数据 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等 验证 注意:为该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与 阅读全文

posted @ 2018-06-21 13:50 风-fmgao 阅读(404) 评论(0) 推荐(0)

mysql常用数据类型
摘要:存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data-types.html http://dev.mysql.com/doc/refman/5.7/en/data 阅读全文

posted @ 2018-06-21 13:48 风-fmgao 阅读(112) 评论(0) 推荐(0)

mysql表的增删改查
摘要:一、表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二、创建表 create table student1(id int(10) auto_increment, sna 阅读全文

posted @ 2018-06-21 13:47 风-fmgao 阅读(93) 评论(0) 推荐(0)

mysql存储引擎
摘要:一 什么是存储引擎 mysql中建立的库 >文件夹 库中建立的表 >文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制 阅读全文

posted @ 2018-06-21 13:46 风-fmgao 阅读(101) 评论(0) 推荐(0)

mysql库操作
摘要:一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、 阅读全文

posted @ 2018-06-21 13:42 风-fmgao 阅读(100) 评论(0) 推荐(0)

初识sql语句
摘要:有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对 阅读全文

posted @ 2018-06-21 13:40 风-fmgao 阅读(132) 评论(0) 推荐(0)

IO模型比较分析
摘要:异步IO(Asynchronous I/O) Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先 阅读全文

posted @ 2018-06-20 16:50 风-fmgao 阅读(210) 评论(0) 推荐(0)

select,poll,epoll,selectors
摘要:一 了解select,poll,epoll 二 selectors模块 这三种IO多路复用模型在不同的平台有着不同的支持,而epoll在windows下就不支持,好在我们有selectors模块,帮我们默认选择当前平台下最合适的 基于selectors模块实现并发的FTP 参考:链接: https: 阅读全文

posted @ 2018-06-20 16:48 风-fmgao 阅读(274) 评论(0) 推荐(0)

多路复用IO
摘要:多路复用IO(IO multiplexing) IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动IO (event driven IO)。我们都知道,select/epoll的好处就在于单个process就可 阅读全文

posted @ 2018-06-20 16:38 风-fmgao 阅读(144) 评论(0) 推荐(0)

非阻塞IO
摘要:非阻塞IO(non-blocking IO) Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会bloc 阅读全文

posted @ 2018-06-20 15:57 风-fmgao 阅读(142) 评论(0) 推荐(0)

yield-from示例
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/20 9:13# @File : yield_from11.pyfrom collections import namedtupleResult = namedtuple('Resul 阅读全文

posted @ 2018-06-20 10:32 风-fmgao 阅读(133) 评论(0) 推荐(0)

阻塞IO(blocking IO)
摘要:在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时 阅读全文

posted @ 2018-06-19 22:58 风-fmgao 阅读(510) 评论(0) 推荐(0)

IO模型介绍
摘要:IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 https://www.cnblogs.com/fmgao-technology/p/9706485.html 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) 阅读全文

posted @ 2018-06-19 22:57 风-fmgao 阅读(130) 评论(0) 推荐(0)

gevent实现套接字
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17from gevent import monkey,spawn;monkey.patch_all()from socket import *# 负责通信def commun 阅读全文

posted @ 2018-06-19 21:53 风-fmgao 阅读(117) 评论(0) 推荐(0)

gevent异步,io自动切换
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/19# # from gevent import monkey # 这俩行必须放在首行,下面就可以使用time(非gevent)的io# # monkey.patch_all() # 相当于 阅读全文

posted @ 2018-06-19 21:27 风-fmgao 阅读(213) 评论(0) 推荐(0)

协程小示例
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 15:03# @File : 协程.py# 协程:单线程下实现并发import timedef producer(): g = consumer() next(g) for i 阅读全文

posted @ 2018-06-19 16:27 风-fmgao 阅读(126) 评论(0) 推荐(0)

协程基础
摘要:一 引子 一:其中第二种情况并不能提升效率, 只是为了让cpu能够雨露均沾,实现看起来所有任务都被“同时”执行的效果,如果多个任务都是纯计算的,这种切换反而会降低效率。为此我们可以基于yield来验证。yield本身就是一种在单线程下可以保存任务运行状态的方法,我们来简单复习一下 单纯地切换反而会降 阅读全文

posted @ 2018-06-19 16:26 风-fmgao 阅读(146) 评论(0) 推荐(0)

异步调用回调实例
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 14:30# @File : 进程池线程池练习.pyfrom concurrent.futures import ThreadPoolExecutorimport request 阅读全文

posted @ 2018-06-19 14:54 风-fmgao 阅读(99) 评论(0) 推荐(0)

异步调用与回调机制
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 14:05# @File : 异步调用与回调机智.py """ 同步调用和阻塞不一样: 同步调用不管是io型程序还是计算型程序,执行一个程序之后就是等待, 阻塞是io型特有的,因 阅读全文

posted @ 2018-06-19 14:29 风-fmgao 阅读(92) 评论(0) 推荐(0)

初探进程池线程池
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 10:20# @File : 进程池线程池.py# ProcessPoolExecutor和ThreadPoolExecutor接口一样# 计算密集型--进程 ,io密集型--线 阅读全文

posted @ 2018-06-19 11:06 风-fmgao 阅读(89) 评论(0) 推荐(0)

多线程并发简单版
摘要:server #!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 9:33# @File : server1.py# from socket import *# from threading import Thread### de 阅读全文

posted @ 2018-06-19 09:53 风-fmgao 阅读(92) 评论(0) 推荐(0)

队列queue
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 9:11# @File : 线程queue.pyimport queue# q = queue.Queue(3) # 先进先出- 队列## q.put('first')# q.p 阅读全文

posted @ 2018-06-19 09:31 风-fmgao 阅读(114) 评论(0) 推荐(0)

验证码-定时器版
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/19 8:50# @File : 定时器.py# 简单定时器# from threading import Timer## def task(name):# print('hello 阅读全文

posted @ 2018-06-19 09:10 风-fmgao 阅读(142) 评论(0) 推荐(0)

event事件
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# from threading import Thread,Event# import time# event = Event()# # event.wait()# # event.s 阅读全文

posted @ 2018-06-18 23:39 风-fmgao 阅读(104) 评论(0) 推荐(0)

信号量
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18from threading import Thread,Semaphore,currentThreadimport timeimport randomsm = Semaphore(3) 阅读全文

posted @ 2018-06-18 23:17 风-fmgao 阅读(89) 评论(0) 推荐(0)

互斥锁和死锁
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# # 死锁# from threading import Thread,Lock# import time# mutexA = Lock()# mutexB = Lock()### c 阅读全文

posted @ 2018-06-18 23:06 风-fmgao 阅读(157) 评论(0) 推荐(0)

GIL线程与进程选择
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# 计算密集型。应该启动多进程# from multiprocessing import Process# from threading import Thread# import os 阅读全文

posted @ 2018-06-18 22:39 风-fmgao 阅读(104) 评论(0) 推荐(0)

gil基本介绍
摘要:一 引子 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。>有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样 阅读全文

posted @ 2018-06-18 10:39 风-fmgao 阅读(572) 评论(0) 推荐(0)

线程互斥锁
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18from threading import Thread, Lockimport timen = 100def task(): global n mutex.acquire() # 阻止 阅读全文

posted @ 2018-06-18 10:29 风-fmgao 阅读(118) 评论(0) 推荐(0)

守护线程
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# from threading import Thread# import time### def sayhi(name):# time.sleep(2)# print('%s say 阅读全文

posted @ 2018-06-18 10:18 风-fmgao 阅读(113) 评论(0) 推荐(0)

进程与线程区别
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# 1、开进程的开销远大于开线程的# import time# from threading import Thread# from multiprocessing import Pro 阅读全文

posted @ 2018-06-18 09:47 风-fmgao 阅读(112) 评论(0) 推荐(0)

开启线程方式
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/18# # 方式一# from threading import Thread# import time# import random### def task(name):# print(' 阅读全文

posted @ 2018-06-18 08:49 风-fmgao 阅读(118) 评论(0) 推荐(0)

线程基本概念
摘要:一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于cpu),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一条流水线。 阅读全文

posted @ 2018-06-18 08:22 风-fmgao 阅读(152) 评论(0) 推荐(0)

JoinableQueue
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17import timefrom multiprocessing import Process, JoinableQueuedef producer(q): for i in range( 阅读全文

posted @ 2018-06-18 08:04 风-fmgao 阅读(123) 评论(0) 推荐(0)

生产者与消费者
摘要:一 生产者消费者模型介绍为什么要使用生产者消费者模型生产者指的是生产数据的任务,消费者指的是处理数据的任务,在并发编程中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决 阅读全文

posted @ 2018-06-18 07:55 风-fmgao 阅读(369) 评论(0) 推荐(0)

初识队列
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17# 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的## 创建队列的类(底层就是以管道和锁定的方 阅读全文

posted @ 2018-06-17 23:05 风-fmgao 阅读(108) 评论(0) 推荐(0)

抢票模拟
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17import json, timefrom multiprocessing import Process, Lockdef search(name): time.sleep(1) # 模 阅读全文

posted @ 2018-06-17 22:50 风-fmgao 阅读(114) 评论(0) 推荐(0)

互斥锁
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17# 多个进程共享一个服务,共享带来了竞争,竞争带来了混乱# 互斥锁就是把并发变成了串行,牺牲了效率,保证了数据不错乱from multiprocessing import Process 阅读全文

posted @ 2018-06-17 22:17 风-fmgao 阅读(139) 评论(0) 推荐(0)

守护进程
摘要:主进程死,守护进程死 #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17from multiprocessing import Processimport timedef task(name): print('%s is running 阅读全文

posted @ 2018-06-17 20:45 风-fmgao 阅读(133) 评论(0) 推荐(0)

多进程并发简单socket
摘要:server 这种简单实现:坏处客户端启动一个一个进程,进程多了机器要蹦#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/17from socket import *from multiprocessing import Process# 阅读全文

posted @ 2018-06-17 20:28 风-fmgao 阅读(631) 评论(0) 推荐(0)

查看进程id
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/16from multiprocessing import Processimport time, os# 定义task,开启进程就是执行任务def task(): # print('%s 阅读全文

posted @ 2018-06-16 20:29 风-fmgao 阅读(193) 评论(0) 推荐(0)

开启进程俩种方式
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/16# # 方式一:# from multiprocessing import Process# import time### # 定义task,开启进程就是执行任务# def task(n 阅读全文

posted @ 2018-06-16 20:18 风-fmgao 阅读(125) 评论(0) 推荐(0)

进程理论
摘要:一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播放苍井空,一个可以播放饭岛爱。三 并发 阅读全文

posted @ 2018-06-16 19:45 风-fmgao 阅读(145) 评论(0) 推荐(0)

操作系统基础
摘要:一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序二 多道技术: 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再 阅读全文

posted @ 2018-06-16 19:28 风-fmgao 阅读(105) 评论(0) 推荐(0)

pickle示例
摘要:my_pickle.py #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/3import pickleclass MyPickle: def __init__(self, filename): self.filename = filena 阅读全文

posted @ 2018-06-16 09:29 风-fmgao 阅读(108) 评论(0) 推荐(0)

解决粘包问题-终极版
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketimport subprocessimport structimport jsonphone = socket.socket(socket.AF_I 阅读全文

posted @ 2018-06-16 00:15 风-fmgao 阅读(110) 评论(0) 推荐(0)

解决粘包问题-强化版
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketimport subprocessimport structphone = socket.socket(socket.AF_INET, socket 阅读全文

posted @ 2018-06-16 00:14 风-fmgao 阅读(99) 评论(0) 推荐(0)

解决粘包问题-简单版
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketimport subprocessimport structphone = socket.socket(socket.AF_INET, socket 阅读全文

posted @ 2018-06-16 00:11 风-fmgao 阅读(88) 评论(0) 推荐(0)

上传下载优化版本
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/7import socketimport osimport jsonimport structshar_dir = r'E:\python\PycharmProjects\py 阅读全文

posted @ 2018-06-16 00:09 风-fmgao 阅读(79) 评论(0) 推荐(0)

上传下载简单版
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/7import socketimport osimport jsonimport structshar_dir = r'E:\python\PycharmProjects\py 阅读全文

posted @ 2018-06-16 00:07 风-fmgao 阅读(90) 评论(0) 推荐(0)

socket_udp客户端循环输入
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/7from socket import *server = socket(AF_INET, SOCK_DGRAM)server.bind(('127.0.0.1', 8808) 阅读全文

posted @ 2018-06-15 23:55 风-fmgao 阅读(147) 评论(0) 推荐(0)

socket-简单实现
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/7from socket import *server = socket(AF_INET, SOCK_DGRAM)server.bind(('127.0.0.1', 8080) 阅读全文

posted @ 2018-06-15 23:53 风-fmgao 阅读(117) 评论(0) 推荐(0)

socket通信循环
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketphone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)phone.bind(('127. 阅读全文

posted @ 2018-06-15 23:50 风-fmgao 阅读(135) 评论(0) 推荐(0)

socket链接循环
摘要:server #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketphone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)phone.setsockopt( 阅读全文

posted @ 2018-06-15 23:49 风-fmgao 阅读(108) 评论(0) 推荐(0)

TCP三次握手详解及释放连接过程
摘要:TCP在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。 两个序号和三个标志位: (1)序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:ack序号,占32位,只有ACK标志位为 阅读全文

posted @ 2018-06-15 23:46 风-fmgao 阅读(347) 评论(0) 推荐(0)

enum
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/15 14:47# @File : enum_demo1.pyfrom enum import Enum, uniqueMonth = Enum('Month', ('Jan', 'F 阅读全文

posted @ 2018-06-15 15:39 风-fmgao 阅读(142) 评论(0) 推荐(0)

array
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/15 9:35# @File : array_demo1.pyimport array# 该模块定义了一个对象类型,可以表示一个基本值的数组:整数(b, B, h, H, i, I, 阅读全文

posted @ 2018-06-15 10:54 风-fmgao 阅读(196) 评论(0) 推荐(0)

collections
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/14 16:17# @File : collections1_demo1.pyfrom collections import Counterimport re# counter'''C 阅读全文

posted @ 2018-06-15 09:01 风-fmgao 阅读(120) 评论(0) 推荐(0)

python logging 重复写日志问题
摘要:用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次。。。很头疼,这样记日志可不行。网上搜索到了原因与解决方案: 原因:没有移除handler 解决:在日志记录完之后removeHandler 修改前示例代码: 修改前输出结果: 阅读全文

posted @ 2018-06-15 00:04 风-fmgao 阅读(1395) 评论(0) 推荐(0)

python re模块findall()详解
摘要:今天写代码,在写到郑泽的时候遇到了一个坑,这个坑是re模块下的findall()函数。 下面我将结合代码,记录一下 第一个 regex 中是带有2个括号的,我们可以看到其输出是一个list 中包含2个 tuple 第二个 regex 中带有1个括号,其输出的内容就是括号匹配到的内容,而不是整个表达式 阅读全文

posted @ 2018-06-14 17:07 风-fmgao 阅读(1222) 评论(0) 推荐(0)

Python实现进度条总结
摘要:先说一下文本系统的控制符:\r: 将光标移动到当前行的首位而不换行;\n: 将光标移动到下一行,并不移动到首位;\r\n: 将光标移动到下一行首位。 环境:root@ubuntu16:/alex/py/jingdutiao# python3Python 3.5.2 (default, Jul 5 2 阅读全文

posted @ 2018-06-14 10:23 风-fmgao 阅读(341) 评论(0) 推荐(0)

文件os.path相关方法
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/13 15:03# @File : abspath_1.pyimport osimport timeprint('abspath >', os.path.abspath(__file_ 阅读全文

posted @ 2018-06-13 15:40 风-fmgao 阅读(147) 评论(0) 推荐(0)

M3截止阶段小结
摘要:python知识点总结1、copy模块中深浅拷贝copy() deepcopy()2、__new__ 方法参数 def __new__(cls, *args, **kwargs): return object.__new__(cls)3、元类示例: class Mymetaclass(type): 阅读全文

posted @ 2018-06-13 14:18 风-fmgao 阅读(260) 评论(0) 推荐(0)

小猪配齐
摘要:#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/13 8:40# @File : peiqi1.pyfrom turtle import *def nose(x, y): # 鼻子 penup() # 提起笔 goto(x, y) 阅读全文

posted @ 2018-06-13 08:43 风-fmgao 阅读(173) 评论(0) 推荐(0)

实例,静态,类方法示例
摘要:A:实例方法:没有@classmethod和@staticmethod标记的方法是实例方法。假设这个有n个比传参数,类型调用的时候需要给n个参数传参。而实例调用时则只能传n-1个参数,因为第一个参数被系统默认传递了实例本身;因为有这个规定,所以实例方法如果没有参数,则实例是无法调用的,但类型可以调用 阅读全文

posted @ 2018-06-12 15:18 风-fmgao 阅读(111) 评论(0) 推荐(0)

Python普通方法、静态方法、类方法
摘要:开始 测试 三种方法都可以通过实例来调用,但是静态方法和类方法无法访问实例属性,所以更改了tst.data仅对普通方法起了作用 区别 普通方法不能通过类名调用,但是静态方法和类方法是可以的 总结 普通方法,可以通过self访问实例属性 类方法,可以通过cls访问类属性 静态方法,不可以访问,通过传值 阅读全文

posted @ 2018-06-12 14:51 风-fmgao 阅读(169) 评论(0) 推荐(0)

p3新式类__new__使用和实例化
摘要:嗯,new方法返回的是一个全新的对象是真正在内存中分配的内存地址 new()是在新式类中新出现的方法,它作用在构造方法init()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法init()负责将类的实例化,而在init()调用之前,new()决定是否要使用该init()方法,因 阅读全文

posted @ 2018-06-11 17:19 风-fmgao 阅读(227) 评论(0) 推荐(0)

元类
摘要:一 知识储备 exec:三个参数 参数一:字符串形式的命令 参数二:全局作用域(字典形式),如果不指定,默认为globals() 参数三:局部作用域(字典形式),如果不指定,默认为locals() exec的使用 #可以把exec命令的执行当成是一个函数的执行,会将执行期间产生的名字存放于局部名称空 阅读全文

posted @ 2018-06-11 16:01 风-fmgao 阅读(186) 评论(0) 推荐(0)

类的特殊成员
摘要:上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况,Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下: 1. __doc_ 阅读全文

posted @ 2018-06-11 15:21 风-fmgao 阅读(169) 评论(0) 推荐(0)

类属性
摘要:属性 如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种。 对于属性,有以下三个知识点: 属性的基本使用 属性的两种定义方式 1、属性的基本使用 # ############### 定义 ############### class Foo: de 阅读全文

posted @ 2018-06-11 14:44 风-fmgao 阅读(233) 评论(0) 推荐(0)

python-ini文件使用(读和写)
摘要:注意事项: 1.读文件: read(filename):读取ini文件中的内容 sections():得到所有section,返回列表形式 options(section):得到给定section的所有option items(section):得到指定section的所有key-value get 阅读全文

posted @ 2018-06-08 14:57 风-fmgao 阅读(2788) 评论(0) 推荐(0)

TCP和UDP的优缺点及区别
摘要:TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数 阅读全文

posted @ 2018-06-07 15:03 风-fmgao 阅读(165) 评论(0) 推荐(0)

练习题|网络编程-socket开发
摘要:原文:https://www.cnblogs.com/shengyang17/p/8822745.html 1、什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构的软件,实现服务端软件与客户端软件基于网络通信。 2、互联网协议是什么?分别介绍五层协 阅读全文

posted @ 2018-06-07 14:06 风-fmgao 阅读(884) 评论(0) 推荐(0)

上传下载
摘要:server #!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/7 8:41# @File : 服务端.pyimport socketimport osimport jsonimport structshar_dir = r'D:\p 阅读全文

posted @ 2018-06-07 09:33 风-fmgao 阅读(96) 评论(0) 推荐(0)

python报头解决粘包简单实现
摘要:client #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5import socketimport structphone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)phon 阅读全文

posted @ 2018-06-06 19:24 风-fmgao 阅读(221) 评论(0) 推荐(0)

列表拼接
摘要:import reli = [1, 2, 3, 4, 5, 66, 7, 3, 54, 34, 34]# s = ''.join(str(li).split(',')).replace(' ', '').replace('[','').replace(']','')s = re.sub('[\s\[ 阅读全文

posted @ 2018-06-06 15:47 风-fmgao 阅读(118) 评论(0) 推荐(0)

socket_简单报头
摘要:client #!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/6 14:53# @File : client1.pyimport socketimport jsonip_port = ('127.0.0.1', 8080)s = s 阅读全文

posted @ 2018-06-06 15:35 风-fmgao 阅读(268) 评论(0) 推荐(0)

python socket 详细介绍
摘要:Python 提供了两个基本的 socket 模块。 第一个是 Socket,它提供了标准的 BSD Sockets API。 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。 下面讲的是Socket模块功能 1、Socket 类型 套接字格式: socket( 阅读全文

posted @ 2018-06-06 15:31 风-fmgao 阅读(202) 评论(0) 推荐(0)

单例实现方式
摘要:#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/3# 实现方式一:# 基于元类控制类的实例行为,单例模式# class MySQL:# __instance=None## def __init__(self):# self.host = 阅读全文

posted @ 2018-06-03 07:44 风-fmgao 阅读(102) 评论(0) 推荐(0)

Python中常见的数据类型总结
摘要:Python提供多种数据类型来存放数据项集合,主要包括序列(列表list和元组tuple),映射(如字典dict),集合(set),下面对这几种一一介绍: 一 序列 1.列表list 列表是一种有序的集合,相对于元组和字符串的不同是它其中的元素可变,可以随时添加和删除其中的元素。 (1) 创建lis 阅读全文

posted @ 2018-06-01 17:06 风-fmgao 阅读(1461) 评论(0) 推荐(0)

python 中变量的命名规范
摘要:出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变 阅读全文

posted @ 2018-06-01 16:56 风-fmgao 阅读(483) 评论(0) 推荐(0)

深刻理解Python中的元类(metaclass)
摘要:来源:胜哥推荐 译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进 阅读全文

posted @ 2018-06-01 11:24 风-fmgao 阅读(113) 评论(0) 推荐(0)