一、创建Server

  1.Dos 命令

    python -m BaseHTTPServer [port]

    

    默认端口是8000,

  2.Python 脚本启动   

#coding:utf-8
'''
Created on 2018��10��29�� @author: Administrator
'''
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
import MySQLdb
from sqlalchemy import create_engine
import pandas as pd
import json def handleReq(path):
print path
#http://127.0.0.1:8000/itype=90&market=0&code=000001&startNum=0&size=100&shtTQ=1&ptype=0
#解析URL带的请求参数
reqParam = {}
allReq = path.split('/')
if len(allReq) > 1:
req = allReq[1].split('&')
for strParam in req:
param = strParam.split('=')
if len(param) > 1:
reqParam[param[0]] = param[1] gpcode = ""
if reqParam.has_key("market"):
strMarket = ""
if reqParam["market"] == '0':
strMarket = "SZ"
elif reqParam["market"] == '1':
strMarket = "SH" if reqParam.has_key("code"):
strCode = reqParam["code"] if len(strMarket) > 0:
gpcode = strMarket + strCode conn = create_engine("mysql://root:123456@172.16.8.110/quant?charset=utf8")
sql = "select * from quant_stk_calc_d_fct_kdj where gscode = 'FCT_KDJ' and gpcode = '{0}' order by ymd desc limit {1},{2}".format(gpcode, reqParam["startNum"], reqParam["size"])
dfR = pd.read_sql(sql,conn) datas = []
for i in range(0,len(dfR["ymd"])):
date = int(dfR["ymd"][i])
print type(date)
k = round(dfR["f1"][i], 4)
d = round(dfR["f2"][i], 4)
j = round(dfR["f3"][i], 4)
dictData = {"iDate":date,"mField":{"K":k, "D":d, "J":j}}
datas.append(dictData) return datas class HTTPHandle(BaseHTTPRequestHandler):
def do_GET(self):
if self.path != "/favicon.ico":
print "path:",self.path datas = handleReq(self.path) #处理URL请求参数,根据参数获取相应数据
jsonStr = json.dumps(datas)
print jsonStr self.protocol_version = "HTTP/1.1"
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(jsonStr) def startServer():
httpServer = HTTPServer(("127.0.0.1", 8000), HTTPHandle)
httpServer.serve_forever() if __name__ == '__main__':
startServer()

  

二、浏览器访问

    服务开启后,在浏览器输入网址访问服务器资源

    http://127.0.0.1:8000/itype=90&market=0&code=000001&startNum=0&size=100&shtTQ=1&ptype=0

效果:

BaseHTTPServer模块说明,参见:http://blog.sina.com.cn/s/blog_9e9f16d10102x7fc.html

报错:json 报错'xxx is not JSON serializable'的处理方法,参见:https://www.cnblogs.com/SZxiaochun/p/9875050.html

另参见:https://www.jianshu.com/p/4221c2b835a3

python 搭建一个http服务的小例子的更多相关文章

  1. 在开发环境中,自己搭建一个ssl环境(小例子)

    做项目的时候自己总结的一些小例子 public class Test { public static void setSSLProperty() { Security.addProvider(new  ...

  2. 利用OpenStreetMap(OSM)数据搭建一个地图服务

     http://www.cnblogs.com/LBSer/p/4451471.html 图 利用OSM数据简单发布的北京地图服务   一.OSM是什么 开放街道图(OpenStreetMap,简称O ...

  3. 通过express快速搭建一个node服务

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.可以理解为是运行在服务端的 JavaScript.如果你是一个前端程序员,不太擅长像PHP.Python或Ruby等 ...

  4. 搭建一个web服务下载HDFS的文件

    需求描述 为了能方便快速的获取HDFS中的文件,简单的搭建一个web服务提供下载很方便快速,而且在web服务器端不留临时文件,只做stream中转,效率相当高! 使用的框架是SpringMVC+HDF ...

  5. 【LINUX】——linux如何使用Python创建一个web服务

    问:linux如何使用Python创建一个web服务? 答:一句话,Python! 一句代码: /usr/local/bin/python -m SimpleHTTPServer 8686 > ...

  6. 用Python输出一个杨辉三角的例子

    用Python输出一个杨辉三角的例子 这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维 ...

  7. Python搭建简易HTTP服务(3.x版本和2.x版本的)

    废话不多说,我们工作时经常会用到需要HTTP服务,如果不想搞那些复杂的Apache.IIS服务器等,这时我们就可以用python帮我们搭建一个简单的服务器.操作如下: 1.下载并安装一个python: ...

  8. 如何使用koa搭建一个简单服务

    1.首先检测是否已经有node环境?   把Windows的黑窗体的命令行工具调用出来   敲击命令行node -v , 然后,就可以看到这个打印出了一个版本号,这就证明我们的node.js已经是安装 ...

  9. 在django中如何从零开始搭建一个mock服务

    mock概念 mock 就是模拟接口返回的一系列数据,用自定义的数据替换接口实际需要返回的数据,通过自定义的数据来实现对下级接口模块的测试.这里分为两类测试:一类是前端对接口的mock,一类是后端单元 ...

随机推荐

  1. 解决IDEA Springboot项目sql文件打开提示No data sources are configured to run this SQL and provide advanced的问题

    Idea2018的Springboot项目,如果里面有.sql文件,打开后,会提示"No data sources are configured to run this SQL and pr ...

  2. Django——邮件发送

    在settings中添加关键信息 EMAIL_HOST = 'smtp.qq.com' #不同的邮箱有不同的发件地址(收件地址) EMAIL_PORT = 25 #smtp端口号 EMAIL_HOST ...

  3. C/JS_二分法查找

    1. 二分法查找 前提: 数据是排好序的. 题设:给出一个有序arr,从中找出key,arr的区间是array[ low , higt]. 步骤: (1)mid=(low+high)/2 (2)arr ...

  4. Java中Double类型的精确计算

    import java.math.BigDecimal; public class DoubleUtil { private static final int DEF_DIV_SCALE = 5; / ...

  5. 【倍增】T-shirt @2018acm徐州邀请赛 I

    问题 I: T-shirt 时间限制: 1 Sec  内存限制: 64 MB 题目描述 JSZKC is going to spend his vacation! His vacation has N ...

  6. JAVA自学笔记03

    1.三目运算符 1)格式:(关系表达式)?表达式1:表达式2 true则执行表达式1,false则执行表达式2 @ 例题1 :求两数中的较大值 System.out.println(x>y?x: ...

  7. 【jvm】windows下查看java进程下多线程的相关信息

    微软工具:Process Explorer v15.3 下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx 参考教程: ...

  8. 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/5 ...

  9. OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像一

    本文的内容都与图像处理有关,这时需要修改图像,比如要使用具有艺术性的滤镜.外插(extrapolate)某些部分.分割.粘贴或其他需要的操作. 1.不同色彩空间的的转换 OpenCV有数百种关于在不同 ...

  10. css-div翻转动画

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...