使用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二维码生成库qrcode安装和使用示例
Dec 16 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Python学习pygal绘制线图代码分享
Dec 09 Python
Python字典及字典基本操作方法详解
Jan 30 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
python代理工具mitmproxy使用指南
Jul 04 Python
Python搭建Spark分布式集群环境
Jul 05 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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下的PHP5.0详解
2006/11/18 PHP
php 静态化实现代码
2009/03/20 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
python发送HTTP请求的方法小结
2015/07/08 Python
python微信公众号开发简单流程
2018/03/23 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
python3.5安装python3-tk详解
2019/04/26 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
opencv python如何实现图像二值化
2020/02/03 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
python 实现Harris角点检测算法
2020/12/11 Python
索尼巴西商店:Sony巴西
2019/06/21 全球购物
linux面试题参考答案(9)
2016/01/29 面试题
中学生国旗下讲话稿
2014/04/26 职场文书
设备管理实施方案
2014/05/31 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android