浅谈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连接MySQL数据库实例分析
May 12 Python
python操作redis的方法
Jul 07 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 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
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
javascript 写类方式之二
2009/07/05 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
js实现搜索栏效果
2018/11/16 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python 中 Meta Classes详解
2016/02/13 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
详解Python3 基本数据类型
2019/04/19 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
django model通过字典更新数据实例
2020/04/01 Python
Python自省及反射原理实例详解
2020/07/06 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
绘画专业自荐信
2014/07/04 职场文书
人事专员岗位说明书
2014/07/29 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
公司员工安全协议书
2014/11/21 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android