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 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
Python常用模块介绍
Nov 21 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
django url到views参数传递的实例
Jul 19 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python 多线程共享全局变量的优劣
Sep 24 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获取网页内容方法总结
2008/12/04 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
asm.js使用示例代码
2013/11/28 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
Python 开发Activex组件方法
2009/11/08 Python
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
scrapy爬虫实例分享
2017/12/28 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
QML用PathView实现轮播图
2020/06/03 Python
python能做哪些生活有趣的事情
2020/09/09 Python
专升本自我鉴定
2013/10/10 职场文书
导游实习生自荐书
2014/01/28 职场文书
运动会班级前导词
2015/07/20 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
解决xampp安装后Apache无法启动
2022/03/21 Servers