使用Python快速搭建HTTP服务和文件共享服务的实例讲解


Posted in Python onJune 04, 2018

SimpleHTTPServer

SimpleHTTPServer是Python自带的一个HTTP服务类,通过使用它,我们能够在任意平台(Window,Linux,MacOS)快速搭建一个HTTP服务和共享服务,只需要安装Python环境即可

如何使用

如果你想开启一个运行在特定端口上的文件共享服务,可以执行如下命令

python -m SimpleHTTPServer [port]

这将会把当前目录下的文件和目录显示出来,如果我们不指定端口,默认为8000

当然上述命令也开启了一个HTTP服务,假设当前运行目录下由一个文件test,那么我们可以这样请求

curl "http://localhost:8000/test" -v

请求结果为test里面的内容

用途

软件开发过程都是多人协作的,当我们在开发项目依赖于其他人的HTTP接口的时候,我们可以使用SimpleHTTPServer来对依赖的接口进行mock,这样能够加快联调的速度,及早的调试出程序的问题。一般我们的文件中使用json串来模拟结果

不足

python系统自带的SimpleHTTPServer只支持GET和HEAD方法,不支持POST方法(测试环境为python 2.7.10),需要进行简单的修改

#部分源码
def do_GET(self):
 """Serve a GET request."""
 f = self.send_head()
 if f:
 try:
 self.copyfile(f, self.wfile)
 finally:
 f.close()

def do_HEAD(self):
 """Serve a HEAD request."""
 f = self.send_head()
 if f:
 f.close()

我们可以将SimpeHTTPServer方法复制一份,然后在里面实现do_POST方法即可

def do_POST(self):
 """Serve a POST request."""
 self.do_GET()

将文件保存后运行,即可支持POST方式请求

使用Python快速搭建HTTP服务和文件共享服务的实例讲解

以上这篇使用Python快速搭建HTTP服务和文件共享服务的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
python代码实现ID3决策树算法
Dec 20 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
深入理解Django-Signals信号量
Feb 19 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
如何使用Python自动控制windows桌面
Jul 11 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
python实现最短路径的实例方法
Jul 19 Python
python实现局部图像放大
Nov 17 Python
python最长回文串算法
Jun 04 #Python
python中字符串的操作方法大全
Jun 03 #Python
Python Logging 日志记录入门学习
Jun 02 #Python
python实现寻找最长回文子序列的方法
Jun 02 #Python
python实现对求解最长回文子串的动态规划算法
Jun 02 #Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 #Python
用Python一键搭建Http服务器的方法
Jun 01 #Python
You might like
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php 代码优化之经典示例
2011/03/24 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
Javascript模块模式分析
2008/05/16 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Python实现CET查分的方法
2015/03/10 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
工程业务员岗位职责
2013/12/31 职场文书
保护环境建议书100字
2014/05/13 职场文书
实习护士自荐信
2014/06/21 职场文书
会议欢迎词范文
2015/01/27 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
放牛班的春天观后感
2015/06/01 职场文书
python实现过滤敏感词
2021/05/08 Python
Sql Server之数据类型详解
2022/02/28 SQL Server