使用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 相关文章推荐
Python3字符串学习教程
Aug 20 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
python计算两个数的百分比方法
Jun 29 Python
解决python中无法自动补全代码的问题
Dec 04 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
Python中requests做接口测试的方法
May 30 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
javascript实现日历效果
2019/06/17 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
基于python3的socket聊天编程
2020/02/17 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
个人股份合作协议书
2014/10/24 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
实习单位鉴定意见
2015/06/04 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书