您的位置:首页 > 编程语言 > Python开发

python超简单的web服务器

2014-09-21 12:22 429 查看
今天无意google时看见,心里突然想说,python做web服务器,用不用这么简单啊,看来是我大惊小怪了.

web1.py

1
2
3

#!/usr/bin/python
import SimpleHTTPServer
SimpleHTTPServer.test()

web2.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#!/usr/bin/python
import SimpleHTTPServer
import SocketServer
import os

PORT = 80
WEBDIR = "f:/python语言学习"

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

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

web3.py , cgi server ,7777端口, 在web3.py执行目录下新建cgi-bin目录 , 在cgi-bin目录写hello.py

web3.py

1
2
3
4
5

from CGIHTTPServer import CGIHTTPRequestHandler
from BaseHTTPServer import HTTPServer
server_address=('',7777)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()

hello.py

1
2
3
4
5
6
7
8

#!c:/Python24/python.exe

print "HTTP/1.0 200 OK"
print "Content-Type: text/html"
print ""
print "<p>"
print "Hello World!"
print "</p>"

以下这些是需要安装了 twisted 才能使用的
web4.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

from twisted.web.resource import Resource
from twisted.web import server
from twisted.web import static
from twisted.internet import reactor

class ReStructured( Resource ):
def __init__( self, filename, *a ):
self.rst = open( filename ).read( )

def render( self, request ):
return self.rst
PORT=8888

resource = static.File('/')
resource.processors = { '.html' : ReStructured }
resource.indexNames = [ 'index.html']

reactor.listenTCP(
PORT,
server.Site( resource )
)
reactor.run( )

web5.py, 这是又是支持cgi的,又是需要twisted模块的,也是需要在cgi-bin目录下执行,上边的hello.py也能用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# -*- coding: utf-8 -*-
from twisted.internet import reactor
from twisted.web import static, server, twcgi
from twisted.web.resource import Resource

class Collection(Resource):
def render_GET(self, request):
return "hello world 你好"

root = static.File('./')
root.putChild('', Collection())
root.putChild('img', static.File('./img'))
root.putChild('cgi-bin', twcgi.CGIDirectory('cgi-bin'))
reactor.listenTCP(80, server.Site(root))
reactor.run()

当然,想实现复杂功能还是需要自己搞代码的,只不过想惊叹python的模块集成得太多功能了.
python超简单的web服务器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: