使用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使用reportlab实现图片转换成pdf的方法
May 22 Python
python 队列详解及实例代码
Oct 18 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
Python实现的端口扫描功能示例
Apr 08 Python
python散点图实例之随机漫步
Aug 27 Python
python对视频画框标记后保存的方法
Dec 07 Python
Python中的heapq模块源码详析
Jan 08 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
django数据库自动重连的方法实例
Jul 21 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
python 制作网站筛选工具(附源码)
Jan 21 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页面防重复提交方法总结
2013/11/25 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
javascript json2 使用方法
2010/03/16 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
详解React中合并单元格的正确写法
2019/01/08 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
在Python的Django框架中创建和使用模版
2015/07/15 Python
利用python获取Ping结果示例代码
2017/07/06 Python
python url 参数修改方法
2018/12/26 Python
详解python中*号的用法
2019/10/21 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
HTML5 新事件 小结
2009/07/16 HTML / CSS
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
2014婚礼司仪主持词
2014/03/14 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
个人求职信格式范文
2015/03/20 职场文书
统招统分证明
2015/06/23 职场文书
教师研修随笔感言
2015/11/18 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python