python 基于BaseHTTPServer的web服务器搭建(二)

#coding=utf-8

from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler
import urllib

class MyHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type','text/html')
        self.end_headers()  #发送\r\n,意味这下一行为报体
        #send html message,
        self.wfile.write('hello,nanxiaoting')
        return



if __name__ == '__main__':  #注意main后面没有括号
    try:
        server = HTTPServer(('',8080),MyHandler)
        server.serve_forever()
    except KeyboardInterrupt:
        print '^c received,shutting down the web server!'
        server.socket.close()

在浏览器输入 http://127.0.0.1:8080

就会出现 hello,nanxiaoting

2.读取静态文件,像index.html, style.css, javascript和images:

首先贴出index.html :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My web</title>
</head>
<body>
     <h1>hi</h1>
     <p1>hello world</p1>
     <img src="./a.jpg">

</body>
</html>

其中,a.jpg为当前目录下的图片

#coding=utf-8

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer

PORT_NUMBER = 8080
cur_dir = './'

#This class will handles any incoming request from
#the browser
class myHandler(BaseHTTPRequestHandler):

    #Handler for the GET requests
    def do_GET(self):
        if self.path=="/":
            self.path="/index.html"

        try:
            #Check the file extension required and
            #set the right mime type

            sendReply = False
            if self.path.endswith(".html"):
                mimetype='text/html'
                sendReply = True
            if self.path.endswith(".jpg"):
                mimetype='image/jpg'
                sendReply = True
            if self.path.endswith(".gif"):
                mimetype='image/gif'
                sendReply = True
            if self.path.endswith(".js"):
                mimetype='application/javascript'
                sendReply = True
            if self.path.endswith(".css"):
                mimetype='text/css'
                sendReply = True

            if sendReply == True:
                #Open the static file requested and send it
                f = open(cur_dir + self.path)
                self.send_response(200)
                self.send_header('Content-type',mimetype)
                self.end_headers()
                self.wfile.write(f.read())
                f.close()
            return


        except IOError:
            self.send_error(404,'File Not Found: %s' % self.path)

try:
    #Create a web server and define the handler to manage the
    #incoming request
    server = HTTPServer(('', PORT_NUMBER), myHandler)
    print 'Started httpserver on port ', PORT_NUMBER

    #Wait forever for incoming http requests
    server.serve_forever()

except KeyboardInterrupt:
    print '^C received, shutting down the web server'
    server.socket.close()

在浏览器输入,http://127.0.0.1:8080   。出现:

猜你喜欢

转载自blog.csdn.net/nanxiaoting/article/details/81225601