Hyman的博客

你想要什么样的生活,并真正为之努力,你一定会得到它!

用flask开发个人博客(40)—— Flask中三种测试方法

一、单元测试并统计测试的覆盖率 1.1 Flask中的单元测试         在之前的文章中介绍过在flask中进行单元测试的方法,目前我们的代码中存在下面的单元测试: classBasicTestCase(unittest.TestCase): def Setup(self): ...

2017-01-20 17:31:13

阅读数:2634

评论数:0

一张图解释Telnet和SSH

Telnet实现原理: ssh实现原理(以Git客户端和服务端通信为例):

2017-01-20 09:59:40

阅读数:841

评论数:0

用flask开发个人博客(39)—— 在flask中定义Rest API

一、什么是Rest API         Rest 是将业务逻辑从后端转移到前端的一种Web架构,它使用URL来定位Web中的资源,将资源的URL和其他一些信息封装成JSON或者XML格式,在客户端和服务端之间进行传递。它支持http协议中GET、POST、PUT、DELETE等一般方法,作为...

2017-01-19 17:26:07

阅读数:2676

评论数:0

一张图解释SMTP、POP和IMAP协议

SMTP和POP协议: SMTP和IMAP协议:         POP和IMAP都是客户端接收电子邮件的协议,两者的不同在于POP中的邮件由客户端进行管理,而在IMAP中邮件则由服务器进行管理。而且使用IMAP时不必从服务器上下载所有的邮件也可以阅读,比如我们可以选择下载...

2017-01-19 09:34:47

阅读数:902

评论数:0

【C#函数式编程】C#中的函数式编程(三) —— yield关键字的使用

在C#和Python中都有yield关键字,在Python中通过使用yield关键字我们可以得到一个generator生成器,而在C#中使用yield关键字可以得到一个IEnumerable类型的对象,可以理解成C#中的生成器。         IEnumerable对象是一种集合对象,比如Li...

2017-01-18 18:43:27

阅读数:322

评论数:0

一张图解释FTP协议

2017-01-18 16:16:44

阅读数:352

评论数:0

【C#函数式编程】C#中的函数式编程(二) —— IEnumerable和IEnumerator使用详解

一、IEnumerable接口         IEnumerable接口可以暴露一个Celltions的元素的迭代器,它只含有一个方法GetEnumerator,这个方法返回一个IEnumerator对象,而通过这个IEnumerator对象,我们就可以遍历整个Celltions中的元素。 二、...

2017-01-17 15:50:18

阅读数:671

评论数:0

一张图解释NAT和NAPT技术

NAT: NAPT:

2017-01-17 10:31:15

阅读数:701

评论数:0

【C#函数式编程】C#中的函数式编程(一) —— =>表达式

一、函数式编程         函数式编程,简单来理解,就是把函数当成是组成一个功能模块最小的单位。相对于之前接触的面向对象的思想,把类对象当成一个功能模块的组成部件,在函数式编程中把函数也当成一个可拆卸的对象。  二、C#中的Lambda表达式=>         Labmda也称作匿名函...

2017-01-16 10:29:08

阅读数:561

评论数:0

一张图解释DHCP协议

2017-01-16 08:47:00

阅读数:617

评论数:0

用flask开发个人博客(38)—— 使用MarkDown实现博客文章存储成富文本格式

一、MarkDown语法         Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。Github中项目的MD文件就是用MarkDown语法进行编写,它内嵌支持Html,可以使用Html的大部分标签。我们使用构建博客表单bo...

2017-01-14 13:49:50

阅读数:5120

评论数:0

用flask开发个人博客(37)—— 使用Flask-pagedown实现博客文章预览的功能

一、引言         本文主要讨论的内容,是将我们写的纯文本的博客文章,使用Flask-pagedown模块,将文本转换成html富文本数据,并在浏览器上显示,类似于博客文章的预览功能。PageDown是用JavaScript实现的由文本到Html的转换程序,而Flask-pagedown是对...

2017-01-14 11:42:31

阅读数:5813

评论数:7

一张图解释ICMP协议

ICMP目标不可达消息: ICMP重定向消息: ICMP超时消息: ICMP回送消息(Ping命令):

2017-01-13 09:35:53

阅读数:906

评论数:0

用flask开发个人博客(36)—— 使用SQLAlchemy对博客文章进行分页

我们在浏览某个博客网站时,如果博客文章过多,往往都进行了分页显示,比如CSDN中个人博客的首页显示。在flask中SQLAlchemy不但可以进行数据建模和数据查询等等,由于其支持分页查询,我们还可以利用其对我们的文章进行分页。 一、创建博客数据模型         在介绍使用SQLAlchemy...

2017-01-12 23:39:24

阅读数:2615

评论数:0

一张图解释ARP和RARP协议

ARP协议: RARP协议:

2017-01-12 15:49:09

阅读数:1142

评论数:0

网络编程(58)—— Windows下使用CSocket搭建回声服务端和客户端

CSocket是对CAsyncSocket的一个再次封装,它将CAsyncSocket这种异步不阻塞的socket封装成了同步阻塞的socket。它的实现原理其实很简单,我们应该留意到在CAsyncSocket中Accept、Send、Receive函数被定义成了虚函数: virtual BOO...

2017-01-11 22:38:25

阅读数:1451

评论数:0

网络编程(57)—— Windows下使用CAsyncSocket搭建回声服务端和客户端

一、 引言         CAsyncSocket是MFC中对WSAAsyncSelect异步非阻塞通知IO的一个封装类。我们在《Windows下使用WSAAsyncSelect实现窗口处理socket消息》一文中讨论过WSAAsyncSelect的用法,知道它绑定一个窗口到一个socket,...

2017-01-11 22:32:58

阅读数:919

评论数:0

一张图解释DNS域名服务器的作用

2017-01-11 22:21:17

阅读数:984

评论数:0

网络编程(56)—— Windows下使用IOCP构建socket服务端

一、完成端口对象         不同于IO重叠对象在IO完成时通过触发事件或者触发CompletionRoutine回调函数,IOCP模型将socket和完成端口对象(CompletionPort,简称CP对象)绑定,当IO操作完成时,会改变该对象的状态,而我们通过完成端口对象,便可以确认IO...

2017-01-10 15:20:49

阅读数:864

评论数:0

网络编程(55)—— Windows下使用WSASocket基于Completion Routine进行IO重叠

一、引言         上一文中我们介绍了使用基于事件进行IO重叠的方法,本文主要介绍另外一种,基于回调函数void CALLBACK CompletionRoutine(DWORD dwError,DWORDszRecvBytes,LPWSAOVERLAPPED lpOverlapped,D...

2017-01-09 14:03:55

阅读数:1224

评论数:0

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