python搭建简易服务器分析与实现


Posted in Python onDecember 15, 2012

需求分析
省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪,
每次打开都要缓上半天,甚至浏览器直接挂掉
采用python搭建一个最最简易的 web 服务 请求一个nick
就返回 对应的 报表数据 参数用GET方式传送

调研与实现
园里没找到靠谱的,google了半天,最终还是成功了。
以下是源码,里面记录了 其中的 一些问题

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
""" 
@author: zhoujiebin 
@contact: zhoujiebing@maimiaotech.com 
@date: 2012-12-14 15:25 
@version: 0.0.0 
@license: Copyright maimiaotech.com 
@copyright: Copyright maimiaotech.com 
""" 
import os 
import sys 
import urllib 
import SimpleHTTPServer 
import SocketServer 
PORT = 8080 
WEBDIR = "/home/zhoujiebing/report_web_service" 
from syb_report_html import get_html 
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler): 
def translate_path(self, path): 
#用于设定根目录 
os.chdir(WEBDIR) 
SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path(self,path) 
def do_GET(self): 
#服务器端响应GET请求的方法 
#问题1 如何拿到客户端的GET参数 
#我找半天没找到,最后__dict__看到path里有路径,只能从路径里 提取参数了 
#从path中提取 GET参数 
nick = self.path[1:] 
#汉字url转码 
nick = str(urllib.unquote(nick)) 
if nick != 1: 
report_html = get_html(nick) 
else: 
report_html = 'nick非法' 
print '请求 ' + nick + ' 省油宝计划报表' 
self.send_response(200) 
self.send_header("Content-type", "text/html") 
self.send_header("Content-length", len(report_html)) 
self.end_headers() 
self.wfile.write(report_html) 
if __name__ == '__main__': 
try: 
httpd = SocketServer.TCPServer(("", PORT), Handler) 
print "dir %s serving at port %s"%(repr(WEBDIR), PORT) 
#启动服务器 端进程 
httpd.serve_forever() 
except Exception,e: 
print '异常',e

执行这个程序 web服务程序 就启动了
在浏览器中 输入 ip:8080/nick 就可以了
Python 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
python把转列表为集合的方法
Jun 28 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
python实现门限回归方式
Feb 29 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
浅谈Python3多线程之间的执行顺序问题
May 02 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 23 Python
Python笔记(叁)继续学习
Oct 24 #Python
python笔记(2)
Oct 24 #Python
python笔记(1) 关于我们应不应该继续学习python
Oct 24 #Python
Python的一些用法分享
Oct 07 #Python
Python天气预报采集器实现代码(网页爬虫)
Oct 07 #Python
python代码检查工具pylint 让你的python更规范
Sep 05 #Python
python 基础学习第二弹 类属性和实例属性
Aug 27 #Python
You might like
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
Python面向对象类继承和组合实例分析
2018/05/28 Python
python读取和保存图片5种方法对比
2018/09/12 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
python解析json数据
2022/04/29 Python
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers