深入了解一下PYTHON中关于SOCKETSERVER的模块-B
请求多个文件的原型。
这个是最草的情况,就是硬编码到内存中的字符串,
真实的应用还是会转到其它端口处理,或是读到硬盘上的文件吧。
#!/usr/bin/env python
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
import time
starttime = time.time()
class RequestHandler(BaseHTTPRequestHandler):
"""Definintion of the request hadnler."""
def _writeheaders(self, doc):
"""Write the HTTP headers for the document. If there is no
documnet, send a 404 error code;"""
if doc is None:
self.send_response(404)
else:
self.send_response(200)
#Always server up HTML for now.
self.send_header('Content-type', 'text/html')
self.end_headers()
def _getdoc(self, filename):
"""Handle a request for a document """
global starttime
if filename == '/':
return """
<HTML><HEAD><TITLE>sample python page</TITLE></HEAD>
<BODY> THIS IS A SAMPLE PAGE.
</BODY></HTML>
"""
elif filename == '/stats.html':
return """
<HTML><HEAD><TITLE>Status</TITLE></HEAD>
<BODY> This server has veen running for %d seconds.
</BODY></HTML>
""" % int(time.time() - starttime)
else:
return None
def do_HEAD(self):
"""Handle a request for headers only"""
doc = self._getdoc(self.path)
self._writeheaders(doc)
def do_GET(self):
"""Handle a request for headers and body"""
doc = self._getdoc(self.path)
self._writeheaders(doc)
if doc is None:
self.wfile.write("""
<HTML><HEAD><TITLE>Not found</TITLE></HEAD>
<BODY> The requested document '%s' was not found.
</BODY></HTML>""" % self.path)
else:
self.wfile.write(doc)
serveraddr = ('',8765)
srvr = HTTPServer(serveraddr, RequestHandler)
srvr.serve_forever()

深入了解一下PYTHON中关于SOCKETSERVER的模块-B的更多相关文章
- 深入了解一下PYTHON中关于SOCKETSERVER的模块-D
在LINUX上以FORK的方式使用SIMPLEHTTPSERVER. 记得哟,THREADING能在WIN和LINUX上实现,但FORK,不支持WIN的. 除了SIMPLE之外,还有CGI,就不示例啦 ...
- 深入了解一下PYTHON中关于SOCKETSERVER的模块-C
同时处理多个客户端请求,并且为不同的CLIENT开不同的线程处理. 这个东东,就显然实用性稍强了一些.(FORK和THREAD方式均可,但各有应用) #!/usr/bin/env python fro ...
- 深入了解一下PYTHON中关于SOCKETSERVER的模块-A
有了这块知识,应该对各类WEB框架有更好的理解吧..FLASK,DJANGO,WEBPY.... #!/usr/bin/env python from BaseHTTPServer import HT ...
- Python中os和shutil模块实用方法集…
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- python中根据字符串导入模块module
python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlib modname = 'datetime' date ...
- python中的第三方日志模块logging
基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...
- Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)
本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...
- python中time、datetime模块的使用
目录 python中time.datetime模块的使用 1.前言 2.time模块 1.时间格式转换图 2.常用方法 3.datetime模块 python中time.datetime模块的使用 1 ...
随机推荐
- Chapter 2 - How to Add a sprite
Chapter 2 - How to Add a sprite 1. Add image resources 1.1add resources on win32 2. Add a sprite TIP ...
- linux shell less 命令---转
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...
- System Operations on AWS - Lab 4W - Monitoring (Windows)
创建Web Server实例,配置CloudWatch来收集Web Server的系统日志,当错误登录次数达到设定值时触发报警 1. 创建Web Server 1.1 创建一个IAM策略 1.2 创建 ...
- select/**/*/**/from/**/RegSite
select/**/*/**/from/**/RegSite 这样写sql也是可以的 替换空格
- 2015前端各大框架比较(angular,vue,react,ant)
前端流行框架大比拼 angular vue react ant-design angularjs angular是个MVVM的框架.针对的是MVVM这整个事.angular的最主要的场景就是单页应用, ...
- Unity5.0 手动激活
提供Unity5.0.1.f1(32-bit)下载http://pan.baidu.com/s/1bg5sDK 密码 ns75 有时候会发现,用激活工具是激活不了的,这个时候就要手动激活,其实个人觉得 ...
- Lucene技术杂谈
Lucene教程 1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么 ...
- 牛皮市和猴市的好工具和指标:BOLL
(转贴)布林线BOLL用法 布林线是股市中经常用到的技术指标之一,它反映了股价的波动状况.山版软件指标图中的布林线由三条组成,上边的白线(up)是阻力线,下边的黄线(down)是支撑线,中间的粉红线( ...
- SQL Server 中WITH (NOLOCK)
with(nolock)的功能: 1: 指定允许脏读.不发布共享锁来阻止其他事务修改当前事务读取的数据,其他事务设置的排他锁不会阻碍当前事务读取锁定数据.允许脏读可能产生较多的并发操作,但其代价是读取 ...
- 支持H5的一般设置
1.因为IE8既不支持HTML5也不支持CSS3 Media,所以我们需要加载两个JS文件,来保证我们的代码实现兼容效果: <script src="https://oss.maxcd ...