自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1 软件测试理论一

一 测试模型1 V模型示意图V模型的优点 测试V模型即包含了底层测试又包含了高层测试; 底层测试:检验源代码质量的测试,如:单元测试; 高层测试:检验整个系统的需要,如:系统测试; V模型清楚地标识出了软件开发的阶段。 它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之...

2019-09-17 11:29:19 228

原创 5 Django的视图层

视图函数一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,约...

2019-03-29 17:03:39 139

原创 4 Django-2的路由层(URLconf)

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行。简单的路由配置from django.urls import path,re_pathfrom app01 import viewsurlpatterns = [ ...

2019-03-29 16:38:07 247

原创 3 Django模型简介和下载

MVC模型Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:MTV模型Django的MTV模式本质上和MVC是一样的,也是为了各组件间...

2019-03-29 15:56:39 160

原创 2 web应用与web框架

web应用Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行。WEB应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用...

2019-03-22 12:34:03 155

原创 1 http协议

1 http协议简介http协议,又称超文本传输协议(HyperText Transfer Protocaol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务...

2019-03-22 12:10:11 622

原创 6 BOM

BOM的介绍浏览器对象模型。操作浏览器部分功能的API。比如让浏览器自动滚动。BOM的结构图window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。DOM是BOM的一部分。window对象:window对象是JavaScript中的顶级对象。全局变量、自定义函数也是window对象的属性和方法。window对象下的属性...

2019-03-12 08:44:42 165

原创 5 定时器

setTimeout()setInterval()定时器在js中有两种定时器:一次性定时器:setTimeout()周期性循环定时器: setInterval()setTimeout()只在指定的时间后执行一次/定时器 异步运行 function hello(){ alert("hello"); } //使用方法名字执行方法 var t1 = w...

2019-03-12 08:43:08 182

原创 4 client、offset、scroll

client、offset、scroll系列主要与计算盒模型、盒子的偏移量和滚动有关clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度clientLeft 内容区域到边框左部的距离,说白了就是边框的乱度clientWidth 内容区域+左右padding 可视宽度clientHeight 内容区域+ 上下padding 可视高度client演示<!...

2019-03-12 08:42:29 115

原创 3 DOM

文章目录1 DOM概念2 DOM树(一切皆是节点)3 DOM可以做什么4 DOM的结构5 获取其它DOM(事件源)的三种方式6 事件7 事件的三要素绑定事件的方式JavaScript入口函数 window.onload()样式属性操作值的操作标签属性操作节点的操作创建节点插入节点删除节点8 DOM 相关案例1 模态框案例2 模拟hover选择器3 Tab栏选项卡1 DOM概念概念所谓DOM,...

2019-03-12 08:40:54 450

原创 2 ECMAScript5.0

文章目录1 JavaScript的引入方式2 注释3 变量4 基本数据类型5 运算符6 数据类型转换7 流程控制8 循环9 常用内置对象(复杂数据类型)(重点)1 数组Array2 字符串string3 Math内置对象10 函数11 实参 arguments12 对象Object13 Date 日期对象14 JSON1 JavaScript的引入方式内接式<script t...

2019-03-12 08:35:44 194

原创 1 JavaScript介绍

JavaScript介绍web前端有三层HTML:从语义的角度,描述页面的结构CSS:从审美的角度,描述样式(美化页面)JavaScript:从交互的角度,描述行为(提升用户体验)历史背景介绍布兰登 艾奇 1995年在网景公司 发明的JavaScript一开始的JavaScrip叫LiveScript同一个时期 比如 VBScript,JScript等,但是后来被JavaScr...

2019-03-12 08:29:04 139

原创 1、linux目录介绍

1、linux设计思想1)程序应该小而专一,程序应该尽量小,且只专注于一件事上,不要开发那些看起来有用但是90%的情况都用不到的特性;2)程序不只要考虑性能,程序的可移植性更重要,shell和perl,python等脚本相比C有更好的移植性;3)一切皆文件,尽量使用文本文件来存储数据,避免使用二进制文件,因为文本文件可读性强,且已经有更多的工具来处理,例如awk,sed,grep等;...

2019-02-27 19:26:50 105

原创 3、基本选择器

基础选择器包括:标签选择器 类选择器 ID选择器 通用选择器标签选择器顾名思义就是通过标签名来选择元素:示例:p { color: red;}将所有的p标签设置字体颜色为红色。ID选择器通过元素的ID值选择元素:示例:#i1 { color: red;}将id值为i1的元素字体颜色设置为红色。类选择器通过样式类选择元素:...

2019-02-27 19:13:14 156

原创 2、CSS引入方式

网页中引用CSS样式内联样式 行内样式表 外部样式表 链接式 导入式 1、内嵌方式<!doctype html><html> <head> <meta charset="utf8"> <style> p { ...

2019-02-27 19:11:27 368

原创 1、CSS介绍

CSS介绍CSS是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的...

2019-02-27 19:02:47 301

原创 4、HTML标签分类

块级元素特点:display:block;1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。独占一行2、元素的高度、宽度、行高以及顶和底边距都可设置。3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。行内元素特点:display:inline;1、和其他元素都在一行上;2、元素的高度、宽度及顶部和底部边距不可设置;...

2019-02-27 18:46:31 306

原创 3-2、body标签相关内容-常用标签二

1、表格标签 table表格由<table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由<td>标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等<!DOCTYPE html><html lang=...

2019-02-27 10:56:03 206

原创 3-1、body标签相关内容-常用标签一

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

2019-02-27 10:30:21 407

原创 2、head标签相关内容

1、title标签<title>标签:在<title>和</title>标签之间的文字内容是网页的标题信息,它会显示在浏览器标签页的标题栏中。可以把它看成是一个网页的标题。主要用来告诉用户和搜索引擎这个网页的主要内容是什么,搜索引擎可以通过网页标题,迅速的判断出当前网页的主题。创建一个带有我们自定义标题内容的网页:<!DOCTYPE html...

2019-02-27 09:38:12 273

原创 1、HTML介绍

HTML简介HTML,全称是超文本标记语言(HyperText Markup Language),它是一种用于创建网页的标记语言。标记语言是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识。HTML文档结构HTML文件...

2019-02-27 09:22:13 170

原创 4、继承与派生

初识继承什么是继承?继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可以成为基类或超类,新建的类称为派生类或子类python中类的继承分为:单继承和多继承class ParentClass1: #定义父类 passclass Parent...

2019-02-18 09:23:49 103

原创 3、属性查找和绑定方法

属性查找类有两种属性:数据属性和函数属性1、类的数据属性是所有对象共享的#类的数据属性是所有对象共享的,id都一样print(id(OldboyStudent.school))print(id(s1.school)) #4377347328print(id(s2.school)) #4377347328print(id(s3.school)) #43773473282...

2019-02-18 09:21:13 128

原创 2、类和对象

类与对象的概念类即类别、种类,是面向对象设计最重要的概念,从一小节我们得知对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体。那么问题来了,先有的一个个具体存在的对象(比如一个具体存在的人),还是先有的人类这个概念,这个问题需要分两种情况去看在现实世界中:肯定是先有对象,再有类世界上肯定是先出现各种各样的实际存在的物体,然后随着人类文明的发展,人类站在不同的角度总...

2019-02-18 09:19:59 133

原创 1、面向对象程序设计

编程范式编程即写程序or写代码,具体是指程序员用特定的语法+数据结构+算法编写代码,目的是用来告诉计算机如何执行任务 。如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派便是:面向过程与面向对象。“功夫的流派没有高低之分,只有习武的人才有高低之分“,在编程世界里更是这样,面向过程与面向对象在不同的场景下都各有优劣,谁好谁坏不能一概而论...

2019-02-18 09:18:46 1562

原创 6、通过Socket发送文件

通过socket收发文件软件开发收发收发文件与远程执行命令的程序原理是一摸一样的,比如下载文件的过程:1、客户端提交命令2、服务端接收命令,解析,执行下载文件的方法,即以读的方式打开文件,for循环读出文件的一行行内容,然后send给客户端3、客户端以写的方式打开文件,将接收的内容写入文件中参照上一小节文艺青年实现版二,示范代码如下服务端实现import so...

2019-02-18 09:15:15 278

原创 5、粘包现象与解决方案

简单远程执行命令程序开发是时候用户socket干点正事呀,我们来写一个远程执行命令的程序,写一个socket client端在windows端发送指令,一个socket server在Linux端执行命令并返回结果给客户端执行命令的话,肯定是用我们学过的subprocess模块啦,但注意注意注意:res = subprocess.Popen(cmd.decode('utf-8'),s...

2019-02-18 09:13:57 237

原创 4、Socket代码实例

基本Socket例子做了这么久的铺垫,是时候该与远方的她say hi啦Server# Echo server programimport socketHOST = '' # Symbolic name meaning all available interfacesPORT = 50007 # Arbitrary no...

2019-02-18 09:11:41 412

原创 3、Socket介绍

引子我们已经知道,假设我现在要写一个程序,给另一台计算机发数据,必须通过tcp/ip协议 ,但具体的实现过程是什么呢?我应该怎么操作才能把数据封装成tcp/ip的包,又执行什么指令才能把数据发到对端机器上呢? 不能只有世界观,没有方法论呀。。。此时,socket隆重登场,简而言之,socket这个东东干的事情,就是帮你把tcp/ip协议层的各种数据封装啦、数据发送、接收等通过代码已经给你封装好...

2019-02-18 09:07:39 233

原创 2、TCP/IP详解

TCP/IP五层模型讲解我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件物理层物理层由来:上面提到,孤立的计算机之间要...

2019-02-18 09:06:37 355

原创 1、C/S架构介绍

什么是C/S架构C指的是client(客户端软件),S指的是Server(服务端软件),本章的重点就是教大家写一个C/S架构的软件,实现服务端软件与客户端软件基于网络通信。计算机基础知识作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。...

2019-02-18 08:59:55 19301 2

原创 5-7、selectors模块

一 了解select,poll,epollIO复用:为了解释这个名词,首先来理解下复用这个概念,复用也就是共用的意思,这样理解还是有些抽象,为此,咱们来理解下复用在通信领域的使用,在通信领域中为了充分利用网络连接的物理介质,往往在同一条网络链路上采用时分复用或频分复用的技术使其在同一链路上传输多路信号,到这里我们就基本上理解了复用的含义,即公用某个“介质”来尽可能多的做同一类(性质)的...

2019-02-16 18:39:29 139

原创 5-6、IO模型比较分析

IO模型比较分析到目前为止,已经将四个IO Model都介绍完了。现在回过头来回答最初的那几个问题:blocking和non-blocking的区别在哪,synchronous IO和asynchronous IO的区别在哪。先回答最简单的这个:blocking vs non-blocking。前面的介绍中其实已经很明确的说明了这两者的区别。调用blocking IO会一直block住对应的...

2019-02-16 18:35:57 129

原创 5-5、异步IO

异步IO(Asynchronous I/O)Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程:用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先它会立刻返回,所以不会对用户进程产生任何block。然后,kernel会等待数据准备完成,然...

2019-02-16 18:35:19 110

原创 5-4、多路复用IO

多路复用IO(IO multiplexing)IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动IO(event driven IO)。我们都知道,select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理就是select/epoll这个function会不断...

2019-02-16 18:34:51 111

原创 5-3、非阻塞IO

非阻塞IO(non-blocking IO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲 ,它发起一个read操作后,并不需...

2019-02-16 18:33:57 100

原创 5-2、阻塞IO

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

2019-02-16 18:33:08 119

原创 5-1、IO模型介绍

IO模型介绍同步: #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。#举例:#1. multiprocessing.Pool下的apply #发起同步调用后,就在原地等着任务结束,根本不考虑任务是在计算还是在io阻塞,...

2019-02-16 18:32:21 134

原创 4-3、gevent模块

一 gevent模块安装pip3 install geventGevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。#用法g1=gevent.spawn(func,1,,2,...

2019-02-16 18:28:41 210

原创 4-2、greenlet模块

一 greenlet模块如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦),而使用greenlet模块可以非常简单地实现这20个任务直接的切换#安装:pip3 install greenletfrom greenlet import greenletdef eat(nam...

2019-02-16 18:27:38 121

空空如也

空空如也

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

TA关注的人

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