浅谈Python使用Bottle来提供一个简单的web服务

yipeiwu_com6年前Python基础

介绍

今天有个不正经的需求,就是要快速做一个restful api的性能测试,要求测试在海量作业数据的情况下客户端分页获取所有作业的性能。因为只是一个小的的测试工作,所以就想到了Bottle框架作为Web服务器,这里就简单说说怎样使用Bottle框架。

安装

pip install bottle

启动服务

运行下面的python脚本即可启动一个Web服务。

from bottle import route, run, request

@route('/hello')
def hello():
  return "Hello World!"

run(host='0.0.0.0', port=8080, debug=True)

测试,使用如下命令行来测试服务

curl http://localhost:8080/hello

提供Restful API

服务端

1.由于我需要根据参数来返回部分结果(比如:根据偏移量和分页大小),因此可以使用Bottle的动态路来实现,当然用参数实现也是可以的。
2.这里假定我设置的请求url为:/jobs//
3.这里为了测试方便并没有返回作业信息,而是用offset和size作为json结果返回。

下面是服务器端测试代码

import json
from bottle import route, run, request

@route('/jobs/<offset:int>/<size:int>')
def get_jobs(offset, size):
  d = {"offset": offset, "size": size}
  return json.dumps(d)

run(host='0.0.0.0', port=8080, debug=True)

客户端

import httplib, json

c = httplib.HTTPConnection('localhost', 8080)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
c.request('GET', '/jobs/123/321', '{}', headers)
s = c.getresponse().read().strip()
print json.loads(s)

总结

以上就是本文关于浅谈Python使用Bottle来提供一个简单的web服务的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

对python中return和print的一些理解

前言 最近刚开始学习python,之前只有一些c的基础,也忘得差不多了,现在想边学习边总结和分享收获~看书时看了return的用法,可是后来和print混了,老是感觉可以将函数retur...

对Python 窗体(tkinter)文本编辑器(Text)详解

如下所示: import tkinter win=tkinter.Tk() text=tkinter.Text(win) #文本编辑器(用于展示数据) text.insert(t...

win10环境下配置vscode python开发环境的教程详解

win10环境下配置vscode python开发环境的教程详解

前言 VScode是一个相当优秀的IDE,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,不愧是微软爸爸的私生子。 所以用VScode来编写Pyth...

python字符串切割:str.split()与re.split()的对比分析

1、str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况。 >>> s1="aa bb cc" >>> s...

python使用matplotlib模块绘制多条折线图、散点图

python使用matplotlib模块绘制多条折线图、散点图

今天想直观的展示一下数据就用到了matplotlib模块,之前都是一张图只有一条曲线,现在想同一个图片上绘制多条曲线来对比,实现很简单,具体如下: #!usr/bin/env pyt...