flask微服务框架的初步接触
测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时,
常用的做法就是写一个模拟测试桩,用作返回请求时的结果。java可以用servicelet来实现,而python可以使用flask这个框架来实现,
并且,实现起来也比java相对简单一些。 编程语言的永远第一个示例,hello world from flask import Flask, request #安装 flask和flask_restful 包
from flask_restful import Api, Resource app=Flask(__name__) #实例化,__name__为系统变量
api=Api(app) #restful API的固定写法
class HiWorld(Resource): #创建一个类,并继承flask_restful.Resource;定义为一个资源
def get(self):
return {'Hello':'World'} api.add_resource(HiWorld,'/Hello_World/a') #将HiWorld类作为数据资源加入到api,‘/Hello_World’为请求资源地址
if __name__=="__main__":
app.run(host='0.0.0.0',port='8585',debug=True) #host='0.0.0.0'表示开放其他机器访问权限,debug=True表示打印调试日志,port为访问端口号
#请求默认地址http://127.0.0.1:5000 示例二:多个请求资源
from flask import Flask
from flask_restful import Api,Resource,reqparse,abort app=Flask(__name__)
api=Api(app) todos={
'todo1':{'task':'welcome'},
'todo2':{'task':'to'},
'todo3':{'task':'school'}
} def abort_if_todo_unexist(todo_id): #请求的资源不在todos变量中,返回404
if todo_id not in todos:
abort(http_status_code=404,message="todo{}doesn't exsit".format(todo_id)) #abort提前退出请求,并返回http状态码404 parser=reqparse.RequestParser() #解析url中参数
parser.add_argument('task',type=str) #todo
class Todo(Resource):
def get(self,todo_id): #请求时get的方法,根据url中参数获取资源
abort_if_todo_unexist(todo_id)
return todos[todo_id]
def delete(self,todo_id): #请求时delete的方法,根据url中参数删除资源
abort_if_todo_unexist(todo_id)
del todos[todo_id]
return '',204
def put(self,todo_id): #请求时put的方法,根据url中参数修改资源
args=parser.parse_args()
task={'task':args['task']}
todos[todo_id]=task
return task,201 #todolist
class Todolist(Resource):
def get(self): #请求时get的方法,url没有带参数时,返回所有变量todos的值
return todos
def post(self): #请求时post的方法,url没有带参数时,新增todos[todo_id]的值
args=parser.parse_args()
todo_id=int(max(todos.keys()).lstrip('todo'))+1
todo_id='todo%i'%todo_id
todos[todo_id]={'task':args['task']}
return todos[todo_id],201 api.add_resource(Todolist,'/todos/')
api.add_resource(Todo,'/todos/<todo_id>') #<todo_id>为传入的参数 if __name__=='__main__':
app.run(host='0.0.0.0',port='8585',debug=True)
flask微服务框架的初步接触的更多相关文章
- 基于.NET CORE微服务框架 -谈谈surging API网关
1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中剥析下surging的Api 网关 开源地址:https://git ...
- spring cloud 入门,看一个微服务框架的「五脏六腑」
Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...
- 从 Spring Cloud 看一个微服务框架的「五脏六腑」
原文:https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构 ...
- go微服务框架go-micro深度学习(一) 整体架构介绍
产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身.项目 ...
- 微服务框架go-micro
微服务框架go-micro https://www.cnblogs.com/li-peng/p/9558421.html 产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂 ...
- Dubbo Ecosystem - 从微服务框架到微服务生态
从微服务框架到微服务生态,这是微服务发展的必然趋势,也是Dubbo社区满足开发者更高效的构建微服务体系期望的使命和担当. 近期,Apache Dubbo PPMC 望陶(社区昵称:ralf0131)做 ...
- # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...
- 微服务框架Demo.MicroServer运行手册
一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...
- 推荐一款 Python 微服务框架 - Nameko
1. 前言 大家好,我是安果! 考虑到 Python 性能及效率性,Python Web 端一直不温不火,JAVA 和 Golang 的微服务生态一直很繁荣,也被广泛用于企业级应用开发当中 本篇文章 ...
随机推荐
- 阿里云ECS试用配置
1.首先从阿里云找到ECS购买入口(目前在弹性入口的弹出框中).进入ECS购买界面后,选择免费试用. 此处省略试用申请过程. 2.然后再到云市场中购买一个免费的镜像服务.此处为Centos 64位系统 ...
- Windows2016的 IIS中配置PHP7运行环境
Windows2016的 IIS中配置PHP7运行环境 在Windows 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 .进入控制面板>>程序和功能>>打开或 ...
- 【原创】大数据基础之Ambari(1)简介、编译安装、使用
官方:http://ambari.apache.org/ The Apache Ambari project is aimed at making Hadoop management simpler ...
- 小程序 模态对话框自定义组件(modal)
1. 概述 1.1 说明 小程序中使用wx.showModal(Object object)打开一个模态对话框,但是目前小程序所提供的modal中的内容显示比较死板,不能够完全满足工作中所遇到的功能信 ...
- Java面试题复习笔记(框架)
1.什么是框架? 为解决一个开放性问题而设计的具有一定约束性的支撑结构,再次结构上可以根据具体问题扩展,安插更多的组成部分,从而更迅速和方便地构建完整解决问题的方案. 2.MVC模式? 用一种业务逻辑 ...
- VS2010 集成标准com组件
#include <Windows.h> #include <stdio.h> // import后,会提示找不到对应的SignCtrl.tlh文件,只需要对项目重新编译一下, ...
- selenium+python-unittest多线程执行用例
前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时...那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程 ...
- php html生成页面二维码
这个方法主要是针对html页面生成二维码,因此需要一个配置文件phpqrcode.php(因内容太多所以请大家去百度网盘自己下载即可,链接: https://pan.baidu.com/s/1_2mA ...
- Pop Star 1.2.5
原文链接https://www.cnblogs.com/zhouzhendong/p/Pop-Star.html 是VB写的. 年代久远,代码太丑,原码不公开. 下载链接 仅支持Windows,需要解 ...
- python接口测试-认识POST请求
上午和一个大神交流了一下,给我了一点建议:多做笔记,勤复盘:及时记录自己,最好的提升不是来自于别人,而是来自于自身.我觉得挺有道理的,分享出来.共勉 说正事. 今天把post请求的大概内容看了一下.虽 ...