Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8335772
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Python/Ruby

2009-03-14 16:46:41

python是一门有趣的语言,当然也可以做一些有趣的东西.
先看看这个最简单的web服务器.
 

import SimpleHTTPServer
SimpleHTTPServer.test()

当然,这个server只能在localhost下面运行.但是却可以提供静态页面显示.

再看一个稍微复杂的.

import SimpleHTTPServer
import SocketServer

PORT = 8800

handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("192.168.1.103",PORT),handler)
print 'serving at port',PORT
httpd.serve_forever()

上例,先创建了个tcp的server,不过,采用simple http request handler作为其handler.这样一来,你可以用网内的机子来访问这个web server了.有一点要注意,就是你的html文件目录和当前的脚本所在目录是一致的.

再往后看:

 

import SimpleHTTPServer
import SocketServer
import os

PORT = 8800
WEBDIR = "/www"

class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
        def translate_path(self,path):
                os.chdir(WEBDIR)
                return SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path(self,path)

try:
        #handler = SimpleHTTPServer.SimpleHTTPRequestHandler
        httpd = SocketServer.TCPServer(("192.168.1.103",PORT),Handler)
        print 'dir %s serving at port %s' % (repr(WEBDIR),PORT)
        httpd.serve_forever()
except:
        pass

这个例子较上例是,可以设定html所在的目录.

如果不想用socketServer,可以直接用BaseHttpServer,他继承自SocketServer.

 

import BaseHTTPServer
import SimpleHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer

def run(server_class = BaseHTTPServer.HTTPServer,
        handler_class = SimpleHTTPRequestHandler):
    server_address = ('',8000)
    httpd = server_class(server_address,handler_class)
    httpd.serve_forever()

if __name__ == "__main__":
    run()

阅读(2427) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-03-16 21:22:31

another way ~$ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... localhost.localdomain - - [16/Mar/2009 21:20:50] "GET / HTTP/1.1" 200 -

chinaunix网友2009-03-16 21:15:41

quick and dirty way python -c "import SimpleHTTPServer ; SimpleHTTPServer.test()" Serving HTTP on 0.0.0.0 port 8000 ... localhost.localdomain - - [16/Mar/2009 21:14:16] "GET / HTTP/1.1" 200 - localhost.localdomain - - [16/Mar/2009 21:14:17] code 404, message File not found