python做服务器需要什么模块_python下的web服务器模块

1 root@u254:~/cp#tree

2 .3 |--get_info.py4 |--get_info.pyc5 `--http2.py6

7 get_info.py如下:8 #!/usr/bin/python

9 #encoding=utf-8

10 #supported python2.7

11

12 importcommands13 importjson14

15 defGetInfo(id):16 cmd = "radosgw-admin -c /etc/ceph/ceph.conf bucket stats --uid="+ str(id) +"--categories={}"

17 #cmd = "radosgw-admin bucket stats --uid=37 --categories={} --access=radosgw-admin --access-key=37 --secret=IXJcIub8Zprn7Vu+Tm3VId0LdrnMCfgpZ6sSb9zc"

18 dict_t ={}19 content =commands.getoutput(cmd)20 #print content

21 if content.find(")") != -1:22 en_json = json.loads(content.split(')')[1])23 else:24 en_json =json.loads(content)25 for element inen_json:26 if "bucket" in element.keys() and "usage" inelement.keys():27 #print element["bucket"]

28 if "rgw.main" in element["usage"].keys() and "size_kb_actual" in element["usage"]["rgw.main"].keys():29 #print element["usage"]["rgw.main"]["size_kb_actual"]

30 dict_t.setdefault(element["bucket"], element["usage"]["rgw.main"]["size_kb_actual"])31 else:32 dict_t.setdefault(element["bucket"], 0)33 #print json.dumps(dict_t)

34 returnjson.dumps(dict_t)35

36

37 if __name__ == "__main__":38 GetInfo(37)39

40 http2.py如下:41 #!/usr/bin/pyton

42 #encoding=utf-8

43 #supported by python2.7

44

45

46 #encoding=utf-8

47 from BaseHTTPServer importBaseHTTPRequestHandler, HTTPServer48 importio,shutil49 importurllib,time50 importsys51 sys.path.append(r'./')52 importgetopt,string53 importget_info54

55 classMyRequestHandler(BaseHTTPRequestHandler):56 defdo_GET(self):57 self.process(2)58 defdo_POST(self):59 self.process(1)60

61 defprocess(self,type):62 content =""

63 if type==1:64 datas = self.rfile.read(int(self.headers['content-length']))65 datas = urllib.unquote(datas).decode("utf-8", 'ignore')66 datas =transDicts(datas)67 if datas.has_key('data'):68 content = "data:"+datas['data']+"\r\n"

69

70 if '?' inself.path:71 query =urllib.splitquery(self.path)72 action =query[0]73 if query[1]:74 queryParams ={}75 for qp in query[1].split('&'):76 kv = qp.split('=')77 print kv[1]78 kv[1] = get_info.GetInfo(kv[1])79 queryParams[kv[0]] = urllib.unquote(kv[1]).decode("utf-8", 'ignore')80 #content+= kv[0]+':'+queryParams[kv[0]]+"\r\n"

81 content+= queryParams[kv[0]]+"\r\n"

82

83 enc="UTF-8"

84 content =content.encode(enc)85 f =io.BytesIO()86 f.write(content)87 f.seek(0)88 self.send_response(200)89 self.send_header("Content-type", "text/html; charset=%s" %enc)90 self.send_header("Content-Length", str(len(content)))91 self.end_headers()92 shutil.copyfileobj(f,self.wfile)93 deftransDicts(params):94 dicts={}95 if len(params)==0:96 return

97 params = params.split('&')98 for param inparams:99 dicts[param.split('=')[0]]=param.split('=')[1]100 returndicts101

102 if __name__=='__main__':103 try:104 server = HTTPServer(('203.156.196.254', 20014), MyRequestHandler)105 print 'started httpserver...'

106 server.serve_forever()107 exceptKeyboardInterrupt:108 server.socket.close()109 pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值