浅谈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使用paramiko模块实现ssh远程登陆上传文件并执行
Jan 27 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
对于Python的Django框架部署的一些建议
Apr 09 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
在Python中COM口的调用方法
Jul 03 Python
python多进程并行代码实例
Sep 30 Python
python pygame实现挡板弹球游戏
Nov 25 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
python使用Geany编辑器配置方法
Feb 21 Python
idea2020手动安装python插件的实现方法
Jul 17 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中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python colormap库的安装和使用详情
2020/10/06 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
金融管理专业毕业生求职信
2014/03/12 职场文书
本科生就业推荐信
2014/05/19 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
手残删除python之后的补救方法
2021/06/26 Python