使用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 30 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
python非递归全排列实现方法
Apr 10 Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 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编实现程动态图像的创建代码
2008/09/28 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
MooTools 1.2介绍
2009/09/14 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
教育系毕业生中文求职信范文
2013/10/06 职场文书
远程研修随笔感言
2014/02/10 职场文书
激励员工的口号
2014/06/16 职场文书
温馨提示标语
2014/06/26 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
男方婚前保证书
2015/02/28 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript