zoukankan      html  css  js  c++  java
  • python搭建简易服务器

    需求分析:

    省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪,

    每次打开都要缓上半天,甚至浏览器直接挂掉

    采用python搭建一个最最简易的 web 服务 请求一个nick

    就返回 对应的 报表数据 参数用GET方式传送

    调研与实现:

    园里没找到靠谱的,google了半天,最终还是成功了。

    以下是源码,里面记录了 其中的 一些问题

     1 #! /usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 """
     4 @author: zhoujiebin
     5 @contact: zhoujiebing@maimiaotech.com
     6 @date: 2012-12-14 15:25
     7 @version: 0.0.0
     8 @license: Copyright maimiaotech.com
     9 @copyright: Copyright maimiaotech.com
    10 
    11 """
    12 
    13 import os
    14 import sys
    15 import urllib
    16 import SimpleHTTPServer 
    17 import SocketServer
    18 
    19 PORT = 8080
    20 WEBDIR = "/home/zhoujiebing/report_web_service"
    21 from syb_report_html import get_html
    22 
    23 class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    24     def translate_path(self, path):
    25         #用于设定根目录
    26         os.chdir(WEBDIR)
    27         SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path(self,path)
    28 
    29     def do_GET(self):
    30         #服务器端响应GET请求的方法
    31         #问题1 如何拿到客户端的GET参数
    32         #我找半天没找到,最后__dict__看到path里有路径,只能从路径里 提取参数了
    33         #从path中提取 GET参数
    34         nick = self.path[1:]
    35         #汉字url转码
    36         nick = str(urllib.unquote(nick))
    37         if nick != 1:
    38             report_html = get_html(nick)
    39         else:
    40             report_html = 'nick非法'
    41         print '请求 ' + nick + ' 省油宝计划报表'
    42         self.send_response(200)
    43         self.send_header("Content-type", "text/html")
    44         self.send_header("Content-length", len(report_html))
    45         self.end_headers()
    46         self.wfile.write(report_html)
    47 
    48 if __name__ == '__main__':
    49     try:
    50         httpd = SocketServer.TCPServer(("", PORT), Handler)
    51         print "dir %s serving at port %s"%(repr(WEBDIR), PORT)
    52         #启动服务器 端进程
    53         httpd.serve_forever()
    54     except Exception,e:
    55         print '异常',e

    执行这个程序 web服务程序 就启动了

    在浏览器中 输入 ip:8080/nick 就可以了

  • 相关阅读:
    eclipse rcp 获取工程项目路径
    Eclipse RCP中添加第三方jar包的办法
    eclipse content assist 代码提示功能失效解决办法
    lwuit更改字体大小
    lwuit调整滚动条灵敏度值
    AWTEvent
    IE7 IE6去掉关闭提示框的解决方案
    jQuery多库共存最优解决方案
    电子商务网站 数据库产品表设计方案
    javascript操作cookie
  • 原文地址:https://www.cnblogs.com/2010Freeze/p/2818434.html
Copyright © 2011-2022 走看看