浅谈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 list 合并连接字符串的方法
Mar 09 Python
python实现批量下载新浪博客的方法
Jun 15 Python
python实现批量按比例缩放图片效果
Mar 30 Python
python实现决策树ID3算法的示例代码
May 30 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
python远程连接MySQL数据库
Apr 19 Python
详解Django定时任务模块设计与实践
Jul 24 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
python文件及目录操作代码汇总
Jul 08 Python
详解pycharm配置python解释器的问题
Oct 15 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获取汉字首字母的函数
2013/11/07 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
php intval函数用法总结
2019/04/14 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
初识Node.js
2014/09/03 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
python基础教程之udp端口扫描
2014/02/10 Python
安装docker-compose的两种最简方法
2019/07/30 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
有针对性的求职自荐信
2013/11/14 职场文书
售后服务承诺书模板
2014/05/21 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
刑事起诉书范文
2015/05/19 职场文书
宾馆安全管理制度
2015/08/06 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang