Python web服务器

Python自带Web服务器,由于一般linux系统均默认安装python,windows下安装python也很简单,因此对于临时要搭建的web服务器,使用python很方便。

1. 静态服务器

在网站根目录下执行:

python -m SimpleHTTPServer 8080

在该根目录下建立主页index.html:

hello,world

这样就可以在http://127.0.0.1:8080/ 上访问到。如果没有index.html文件,则会列出当前的目录和文件。可以创建任何文件以供下载。

一份完整的启动Python静态服务器并能指定网页根目录和端口的脚本static.py:

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

if len(sys.argv) < 3:
  print "usage: " + sys.argv[0] + " port web_dir"
  sys.exit()

PORT = int(sys.argv[1])
WEBDIR = sys.argv[2]

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

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

2. 动态服务器

Python支持CGI服务器,首先在根目录下创建目录cgi-bin(默认必须是这个目录名或htbin),然后在根目录下执行:

python -m CGIHTTPServer 8088

然后在cgi-bin下建立文件hello.py:

#!/usr/bin/python

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

然后执行命令让hello.py可执行:

chmod +x hello.py

最后可以在浏览器访问http://127.0.0.1:8088/cgi-bin/hello.py

cgi-bin可以放任何形式的可执行文件,例如c/c++程序,shell脚本hello.sh:

#!/bin/bash

echo "content-type:text/html; charset=utf-8"
echo ""
echo "查询url:${QUERY_STRING}"

关于bash解析queryString参数:https://stackoverflow.com/questions/3919755/how-to-parse-query-string-from-a-bash-cgi-script

文档更新时间: 2018-12-11 22:27   作者:nick