使用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 01 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
python分割列表(list)的方法示例
May 07 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
实时获取Python的print输出流方法
Jan 07 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
将pytorch转成longtensor的简单方法
Feb 18 Python
Jupyter notebook如何修改平台字体
May 13 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
Python类class参数self原理解析
Nov 19 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中提问频率最高的11个面试题和答案
2014/09/02 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JS实现留言板功能
2017/06/17 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
环保倡议书500字
2014/05/15 职场文书
教师工作表现评语
2014/12/31 职场文书
财务会计求职信范文
2015/03/20 职场文书
财务统计员岗位职责
2015/04/14 职场文书
道歉的话语大全
2015/05/12 职场文书
道歉短信大全
2015/05/12 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书