浅谈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的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
全面理解Python中self的用法
Jun 04 Python
Python 内置函数complex详解
Oct 23 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
python中pandas.DataFrame排除特定行方法示例
Mar 12 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
python中的随机函数小结
Jan 27 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
python 协程 gevent原理与用法分析
Nov 22 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python实现ping命令小程序
Dec 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
php常用ODBC函数集(详细)
2013/06/24 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
js轮播图代码分享
2016/07/14 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
深入理解node.js http模块
2018/01/24 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python实现的tab文件操作类分享
2014/11/20 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
浅谈Python NLP入门教程
2017/12/25 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
python实现高斯投影正反算方式
2020/01/17 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
领导干部培训感言
2014/01/23 职场文书
手工社团活动方案
2014/02/17 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
中介业务员岗位职责
2014/04/09 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
婚宴领导致辞
2015/07/28 职场文书