菜鸟笔记
提升您的技术认知

python3之http.server模块-ag真人游戏

有时候我们需要快速地搭建一个web服务,这时我们就可以使用python里面的http.server模块搭建http服务器。实现的方式有以下几种。

basehttpserver模块在python3中已被合并到http.server

1. 命令行启动

pyhton -m http.server 80           #pyhton3中启动方式,开启的端口为80
python -m simplehttpserver 8080    #python2启动方式

这种是常用的方式,很简单。

2. 代码调用

from http.server import httpserver, basehttprequesthandler
 
data = {'result': 'this is a test'}
host = ('localhost', 8888)
 
class resquest(basehttprequesthandler):
    timeout = 5
    server_version = "apache"   #设置服务器返回的的响应头 
    def do_get(self):
        self.send_response(200)
        self.send_header("content-type","text/html")  #设置服务器响应头
        self.send_header("test1","this is test!")     #设置服务器响应头
        self.end_headers()
        buf = '''
                
                    
                        get page
                    
                
                    
username:
password:
''' self.wfile.write(buf.encode()) #里面需要传入二进制数据,用encode()函数转换为二进制数据 #设置响应body,即前端页面要展示的数据 def do_post(self): path = self.path print(path) #获取post提交的数据 datas = self.rfile.read(int(self.headers['content-length'])) #固定格式,获取表单提交的数据 #datas = urllib.unquote(datas).decode("utf-8", 'ignore') self.send_response(200) self.send_header("content-type","text/html") #设置post时服务器的响应头 self.send_header("test","this is post!") self.end_headers() html = ''' post page post data:%s
path:%s ''' %(datas,self.path) self.wfile.write(html.encode()) #提交post数据时,服务器跳转并展示的页面内容 if __name__ == '__main__': server = httpserver(host, resquest) print("starting server, listen at: %s:%s" % host) server.serve_forever()

然后我们可以启动http服务

访问一下,并提交数据看一下

获取到post数据

网站地图