浅谈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 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
在Python的while循环中使用else以及循环嵌套的用法
Oct 14 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
django2.0扩展用户字段示例
Feb 13 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
元组列表字典(莫烦python基础)
Apr 03 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
Python OpenCV快速入门教程
Apr 17 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 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
重置版战役片段
2020/04/09 魔兽争霸
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
测试PHP连接MYSQL成功与否的代码
2013/08/16 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
django ajax json的实例代码
2018/05/29 Python
python实现俄罗斯方块游戏
2020/03/25 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
澳大利亚百货公司:David Jones
2018/02/08 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
中国梦团日活动总结
2014/07/07 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
辞职信范文大全
2015/03/02 职场文书
工作犯错保证书
2015/05/11 职场文书
读书笔记格式
2015/07/02 职场文书
Python入门之基础语法详解
2021/05/11 Python
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP