Python内置的HTTP协议服务器SimpleHTTPServer使用指南


Posted in Python onMarch 30, 2016

首先确保装了Python,我装的是2.x版本,对了,我的操作系统是WIN7,其实对于Python来说,什么操作系统并不重要。Python内置了一个简单的HTTP服务器,只需要在命令行下面敲一行命令,一个HTTP服务器就起来了:

python -m SimpleHTTPServer 80

后面的80端口是可选的,不填会采用缺省端口8000。注意,这会将当前所在的文件夹设置为默认的Web目录,试着在浏览器敲入本机地址:

http://localhost:80
如果当前文件夹有index.html文件,会默认显示该文件,否则,会以文件列表的形式显示目录下所有文件。这样已经实现了最基本的文件分享的目的,你可以做成一个脚本,再建立一个快捷方式,就可以很方便的启动文件分享了。如果有更多需求,完全可以根据自己需要定制,具体的请参见官方文档SimpleHTTPServer,或者直接看源码。我拷贝一段,方便参考:

import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

如果你想改变端口号,你可以使用如下的命令:

python -m SimpleHTTPServer 8080

如果你只想让这个HTTP服务器服务于本地环境,那么,你需要定制一下你的Python的程序,下面是一个示例:

import sys 
import BaseHTTPServer 
from SimpleHTTPServer import SimpleHTTPRequestHandler 
HandlerClass = SimpleHTTPRequestHandler 
ServerClass = BaseHTTPServer.HTTPServer 
Protocol = "HTTP/1.0" 
 
if sys.argv[1:]: 
  port = int(sys.argv[1]) 
else: 
  port = 8000 
server_address = ('127.0.0.1', port) 
 
HandlerClass.protocol_version = Protocol 
httpd = ServerClass(server_address, HandlerClass) 
 
sa = httpd.socket.getsockname() 
print "Serving HTTP on", sa[0], "port", sa[1], "..." 
httpd.serve_forever()

注意:所有的这些东西都可以在 Windows 或 Cygwin 下工作。

Python 相关文章推荐
Python编程生成随机用户名及密码的方法示例
May 05 Python
pandas修改DataFrame列名的方法
Apr 08 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
python实现图片九宫格分割
Mar 07 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
Python中实现输入一个整数的案例
May 03 Python
Python持续监听文件变化代码实例
Jul 22 Python
python中Django文件上传方法详解
Aug 05 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
横向对比分析Python解析XML的四种方式
Mar 30 #Python
python简单实现刷新智联简历
Mar 30 #Python
详解Python迭代和迭代器
Mar 28 #Python
Python读大数据txt
Mar 28 #Python
Python常用的爬虫技巧总结
Mar 28 #Python
Python对数据库操作
Mar 28 #Python
Python字符串切片操作知识详解
Mar 28 #Python
You might like
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
Django实现文件上传下载
2019/10/06 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
态度决定一切演讲稿
2014/05/20 职场文书
党支部先进事迹材料
2014/12/24 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
Python中re模块的元字符使用小结
2022/04/07 Python