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

【转】python超简单的web服务器

2013-05-09 11:35 330 查看
web1.py

1

2

3

#!/usr/ 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服务器。
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服务器。

启动web.py
http://localhost:8080/cgi-bin/hello.py
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: