浅谈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中星号变量的几种特殊用法
Sep 07 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
详解python:time模块用法
Mar 25 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
django rest framework serializers序列化实例
May 13 Python
浅析Python迭代器的高级用法
Jul 16 Python
详解pandas赋值失败问题解决
Nov 29 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 spl_autoload_register实现自动加载研究
2011/12/06 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
php自动载入类用法实例分析
2016/06/24 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
Javascript this关键字使用分析
2008/10/21 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
详解python发送各类邮件的主要方法
2016/12/22 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
pycharm快捷键汇总
2020/02/14 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
什么是数组名
2012/05/10 面试题
杭州联环马网络笔试题面试题
2013/08/04 面试题
网络教育毕业生自我鉴定
2013/10/10 职场文书
怎样写离婚协议书
2014/09/10 职场文书
表彰大会新闻稿
2015/07/17 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript