浅谈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 抓取动态网页内容方案详解
Dec 25 Python
用Python实现协同过滤的教程
Apr 08 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
Django基础知识与基本应用入门教程
Jul 20 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
如何解决django-celery启动后迅速关闭
Oct 16 Python
用Python进行websocket接口测试
Oct 16 Python
详解Python魔法方法之描述符类
May 26 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
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
php汉字转拼音的示例
2014/02/27 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
在vue组件中使用axios的方法
2018/03/16 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
使用Python操作excel文件的实例代码
2017/10/15 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python如何删除文件中重复的字段
2019/07/16 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Python中内建模块collections如何使用
2020/05/27 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
大学生个人求职信范文
2013/09/21 职场文书
暑期实践思想汇报
2014/01/06 职场文书
篮球比赛口号
2014/06/10 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
教师节晚会主持词
2015/06/30 职场文书
公司员工管理制度
2015/08/04 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS