浅谈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中splitlines()方法的使用简介
May 20 Python
Python实现的Excel文件读写类
Jul 30 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
Linux下多个Python版本安装教程
Aug 15 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 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
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
location.href用法总结(最主要的)
2013/12/27 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
前端微信支付js代码
2016/07/25 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python返回数组/List长度的实例
2018/06/23 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
详解【python】str与json类型转换
2019/04/29 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
用python绘制樱花树
2020/10/09 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
三年级音乐教学反思
2014/01/28 职场文书
公司经理聘任书
2014/03/29 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
儿园租房协议书范本
2014/12/02 职场文书
个人廉政承诺书
2015/04/28 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
导游词之天津古文化街
2019/11/09 职场文书