浅谈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发送邮件示例(支持中文邮件标题)
Feb 16 Python
Python3基础之list列表实例解析
Aug 13 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Python接口测试get请求过程详解
Feb 28 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
Flask搭建一个API服务器的步骤
May 28 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
python对url格式解析的方法
2015/05/13 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
Python的collections模块真的很好用
2021/03/01 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
体育老师的教学自我评价分享
2013/11/19 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
办公室岗位职责
2014/02/12 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
Python基础之pandas数据合并
2021/04/27 Python
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server