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


Posted in Python onDecember 27, 2017

介绍

今天有个不正经的需求,就是要快速做一个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 相关文章推荐
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
介绍Python的Django框架中的QuerySets
Apr 20 Python
调试Python程序代码的几种方法总结
Apr 28 Python
Python验证码识别的方法
Jul 10 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
numpy.random模块用法总结
May 27 Python
django迁移数据库错误问题解决
Jul 29 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
python使用布隆过滤器的实现示例
Aug 20 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
python编程实现12306的一个小爬虫实例
Dec 27 #Python
python导出chrome书签到markdown文件的实例代码
Dec 27 #Python
Python类的继承和多态代码详解
Dec 27 #Python
快速查询Python文档方法分享
Dec 27 #Python
Java及python正则表达式详解
Dec 27 #Python
python matplotlib画图实例代码分享
Dec 27 #Python
python爬虫使用cookie登录详解
Dec 27 #Python
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
php微信开发之图片回复功能
2018/06/14 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
Python批量修改文件后缀的方法
2014/01/26 Python
wxpython绘制圆角窗体
2019/11/18 Python
PyTorch中的Variable变量详解
2020/01/07 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
大学生四年生活自我鉴定
2013/11/21 职场文书
学生保证书范文
2014/04/28 职场文书
模特大赛策划方案
2014/05/28 职场文书
品牌转让协议书
2014/08/20 职场文书
志愿者个人总结
2015/03/03 职场文书
股东大会通知
2015/04/24 职场文书
关于远足的感想
2015/08/10 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫