使用python3內建http.server搭建Webserver

1. 下載安裝python

下載地址:https://www.python.org/downloads/release/python-372/

 

2. server.py

#-*- coding:utf-8 -*-

import io
import os
import sys
import urllib
import json
from http.server import HTTPServer
from http.server import SimpleHTTPRequestHandler

class MyRequestHandler(SimpleHTTPRequestHandler):
    protocol_version = "HTTP/1.0"
    server_version = "PSHS/0.1"
    sys_version = "Python/3.7.x"
    target = "D:/web"

    def do_GET(self):
        if self.path == "/" or self.path == "/index":
            print (self.path)
            req = {"success":"true"}
            self.send_response(200)
            self.send_header("Content-type","json")
            self.end_headers()
            rspstr = json.dumps(req)
            self.wfile.write(rspstr.encode("utf-8"))

        else:
            print ("get path error")
            
    def do_POST(self):
        if self.path == "/signin":
            print ("postmsg recv, path right")
        else:
            print ("postmsg recv, path error")
            data = self.rfile.read(int(self.headers["content-length"]))
            data = json.loads(data)
            self.send_response(200)
            self.send_header("Content-type","text/html")
            self.end_headers()
            rspstr = "recv ok, data = "
            rspstr += json.dumps(data, ensure_ascii=False)
            self.wfile.write(rspstr.encode("utf-8"))

if __name__ == "__main__":
    if len(sys.argv) == 2:
        #set the target where to mkdir, and default "D:/web"
        MyRequestHandler.target = sys.argv[1]
    try:
        server = HTTPServer(("", 8080), MyRequestHandler)
        print ("pythonic-simple-http-server started, serving at http://localhost:8080")
        server.serve_forever()
    except KeyboardInterrupt:
        server.socket.close()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章