使用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中文件操作简明介绍
Apr 13 Python
给Python中的MySQLdb模块添加超时功能的教程
May 05 Python
python实现马耳可夫链算法实例分析
May 20 Python
Python2中的raw_input() 与 input()
Jun 12 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
Numpy掩码式数组详解
Apr 17 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
Laravel+Dingo/Api 自定义响应的实现
Feb 17 Python
对python 调用类属性的方法详解
Jul 02 Python
python 发送json数据操作实例分析
Oct 15 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
python中if嵌套命令实例讲解
Feb 25 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
PHP获取文件后缀名的三个函数
2012/10/15 PHP
PHP 读取和编写 XML
2014/11/19 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
JQuery live函数
2010/12/24 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
Python基于Tkinter实现的记事本实例
2015/06/17 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
银行求职信
2014/05/31 职场文书
学生保证书
2015/01/16 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
红歌会主持词
2015/07/02 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python
springboot如何初始化执行sql语句
2021/06/22 Java/Android
webpack的移动端适配方案小结
2021/07/25 Javascript
Python制作春联的示例代码
2022/01/22 Python