浅谈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之编写类之二方法
Oct 11 Python
Python多线程编程简单介绍
Apr 13 Python
spyder常用快捷键(分享)
Jul 19 Python
python实现单向链表详解
Feb 08 Python
pandas数值计算与排序方法
Apr 12 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
Python如何在循环内使用list.remove()
Jun 01 Python
python3排序的实例方法
Oct 20 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
Python之基础函数案例详解
Aug 30 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 快速生成 Flash 动画的方法
2007/03/06 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP中的替代语法介绍
2015/01/09 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
javascript Keycode对照表
2009/10/24 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
React实现todolist功能
2020/12/28 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
python多进程控制学习小结
2018/10/31 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
python中rc1什么意思
2020/06/19 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
大学生创业项目方案
2014/03/08 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
新人入职感言
2015/07/31 职场文书
宣传部部长竞选稿
2015/11/21 职场文书